gpt4 book ai didi

c++ - DirectX - 顶点缓冲区如何工作?

转载 作者:可可西里 更新时间:2023-11-01 13:29:49 29 4
gpt4 key购买 nike

我现在正在学习 DirectX,我阅读了很多关于 VertexBuffer 的内容。由于您不能仅通过阅读来学习编程,因此我正在使用 DX11 制作一个小型引擎(嗯,我的问题与版本无关)

据我所知,我在 VertexBuffer 中存储顶点,实际上我将其存储在图形卡上。好吧,我阅读了有关动态和静态缓冲区的信息。所以如果我理解正确的话,静态缓冲区是用顶点初始化的,并且初始化的顶点不会改变。好的,但我什么时候真正需要它。我的意思是在游戏或其他什么时候,我什么时候有固定顶点?也许对于某些 UI 对象..? - 但即使这些也不是每次都不变..你可以移动它们的 2D 位置......等等..

下一点是关于动态顶点缓冲区的,例如:我有一个缓冲区,里面有一些顶点,这些顶点是绘制出来的。然后我想添加或删除一些顶点。现在怎么办.. 所以我会简单地“更新”缓冲区。但这真的对性能有好处吗?想象一个地形编辑器。在那里你必须更新大量的顶点。

最佳答案

I mean in a Game or whatever, when do I have constant vertices?

实际上一直都是。例如,静态几何体、您提到的 UI 对象等。您对移动对象有轻微的误解,因此造成混淆 - 您不会通过更改顶点来移动对象。相反,您将通过着色器管道放置顶点。在顶点着色器中,您可以对顶点应用任意变换。因此,例如,如果您有一棵树由于某种原因在世界各地移动(可能在浮岛上或其他地方),而不是更改构成树的顶点,您可以更改应用于顶点的变换.

Imagine a terrain editor

这取决于你的地形编辑器应该做什么,但通常你不会在这里改变顶点。 IE。当编辑高度时,而不是上下移动顶点,您写入高度图(大多数情况下是灰度纹理),然后在着色器管道中再次计算 GPU 上的变换。

关于c++ - DirectX - 顶点缓冲区如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13367337/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com