Graphics 未设置顶点缓冲区中的最后一个顶点

Graphics 未设置顶点缓冲区中的最后一个顶点,graphics,buffer,directx-11,sharpdx,Graphics,Buffer,Directx 11,Sharpdx,我正在尝试使用SharpDX在Direct11中渲染球体。我已经正确地读入了OBJ模型,创建了顶点缓冲区,并在渲染上下文上设置了缓冲区 我的问题是,除了最后一个顶点,所有的渲染都非常完美,它被渲染为好像在0,0,0。以下是此操作的屏幕截图: 我已经检查了创建缓冲区时使用的向量,其中没有丢失的数据,我甚至更改了数组中的最后一个元素,如下所示: vertexBufferArray[vertexBufferArray.Length - 1].X = 1.0f; vertexBufferArray[

我正在尝试使用SharpDX在Direct11中渲染球体。我已经正确地读入了OBJ模型,创建了顶点缓冲区,并在渲染上下文上设置了缓冲区

我的问题是,除了最后一个顶点,所有的渲染都非常完美,它被渲染为好像在0,0,0。以下是此操作的屏幕截图:

我已经检查了创建缓冲区时使用的向量,其中没有丢失的数据,我甚至更改了数组中的最后一个元素,如下所示:

vertexBufferArray[vertexBufferArray.Length - 1].X = 1.0f;
vertexBufferArray[vertexBufferArray.Length - 2].X = 1.0f;
没有结果。然而,如果我将第二个元素更改为最后一个元素,如下所示:

vertexBufferArray[vertexBufferArray.Length - 1].X = 1.0f;
vertexBufferArray[vertexBufferArray.Length - 2].X = 1.0f;
我得到这个结果:

我传递给渲染调用的顶点计数是正确的,因为如果我传递它VertexCount-1,我就根本得不到最后一个三角形,如果我传递它VertexCount+100,就不会有任何变化


有什么想法吗?

像往常一样,我在写了一篇关于这个问题的大文章10分钟后就解决了这个问题

问题是我的输入汇编程序,我的位置和法线输入元素的格式为.R32G32B32A32_浮点,而它们本应为.R32G32B32_浮点,因为我将顶点作为向量3输入