0
我正在使用SharpDX渲染一些紋理四邊形。改變頂點數據(位置,顏色,紋理)的推薦方法是什麼?DirectX11:如何更新VertexBuffer數據
我分配的緩衝區這樣的:
var vertexBuffer = SharpDX.Toolkit.Graphics.Buffer.Vertex.New(graphicsdevice, vertecpositiontexturecolor);
var vertexInputLayout = VertexInputLayout.FromBuffer(0, vertexBuffer);
,然後繪製這樣說:
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Apply();
graphicsdevice.Draw(PrimitiveType.TriangleStrip, vertexBuffer.ElementCount);
}
現在我想重新使用vertexbuffer現有的,改變位置,顏色和質地的值並再次繪製。
到目前爲止,我用的GetData()和SetData的(),但做到了這對性能:(一大負面影響
如果你用CPU更新你的數據,最好的辦法是保存你的數據在CPU中(作爲一個數組),更新你的數組,然後使用緩衝區 - >複製數據 - > UnMap的地圖功能。您不需要以這種方式重新創建緩衝區。 – catflier