为什么Direct3D11的输入汇编程序仅绘制1个对象?

安德鲁

我一直在使用顶点着色器和像素着色器,顶点缓冲区,索引缓冲区,实例缓冲区和常量缓冲区编写Direct3D11代码。在某一时刻,我一切正常,但是那时我没有提交代码,而我正在尝试其他东西。

我最近在将实例数据传输到顶点着色器时遇到了问题。

使用很棒的Visual Studio Graphics Debugger,即使我这样称呼,我也发现了这一点:

D3DDeviceContext-> DrawIndexedInstanced(12U,8U,0U,0U,0U);

顶点着色器中的实例数据浮动均为0.0f ...

事情是这样的:它以前没有索引缓冲区就可以工作。现在,使用索引缓冲区,没有实例数据被复制???

你知道是什么原因造成的吗?

安德鲁

最后,我弄清了问题所在,在这里我将告诉您。感谢MooseBoys指出原因!

我的问题在这里:

unsigned int strides[] = { sizeof(Vertex), sizeof(Instance) };
unsigned int offsets[] = { 0U, 0U };
D3DDeviceContext->IASetVertexBuffers(0U, 2U, &VertexBuffer, strides, offsets);

我应该做的:

unsigned int strides[] = { sizeof(Vertex), sizeof(Instance) };
unsigned int offsets[] = { 0U, 0U };
ID3D11Buffer* VertexBuffers[] = { VertexBuffer, InstanceBuffer };
D3DDeviceContext->IASetVertexBuffers(0U, 2U, VertexBuffers, strides, offsets);

经验教训:在代码中断的任何行上仔细查看该函数的文档...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Direct3D11在哪里分配资源对象?

来自分类Dev

为什么我不喜欢这个基本的汇编程序上的jmp?

来自分类Dev

为什么在这种情况下反汇编程序插件不起作用?

来自分类Dev

为什么此汇编程序崩溃(重新组装的ndisasm输出)?

来自分类Dev

为什么我要通过GNU汇编程序(GAS)使用NASM?

来自分类Dev

为什么gcc反汇编程序为局部变量分配额外的空间?

来自分类Dev

为什么此汇编程序不产生任何输出?

来自分类Dev

为什么我在这个基本的汇编程序上陷入了jmp的困境?

来自分类Dev

为什么汇编程序可以使用CALL时使用INT指令?

来自分类Dev

为什么我尝试运行汇编程序(x86)在Dosbox中冻结?

来自分类Dev

为什么此PIC汇编程序代码中的位不移位?

来自分类Dev

将用户输入从 C 传递给汇编程序

来自分类Dev

汇编程序比较2个数字。我究竟做错了什么?

来自分类Dev

Go的汇编程序的条件跳转指令是什么?

来自分类Dev

什么是扩展汇编程序中的“ = qm”

来自分类Dev

汇编程序编程-列的含义

来自分类Dev

Direct3D11是否包括色彩空间转换?

来自分类Dev

如何处理Direct3D11中的backbuffer?

来自分类Dev

Direct3D11是否包括色彩空间转换?

来自分类Dev

汇编程序的意外结果

来自分类Dev

lang汇编程序的奇怪行为

来自分类Dev

运行基本的汇编程序

来自分类Dev

ARM汇编程序的异常行为

来自分类Dev

NumberFormatException java汇编程序

来自分类Dev

创建汇编程序的好方法?

来自分类Dev

如何实现汇编程序

来自分类Dev

汇编程序奇怪的行为

来自分类Dev

从汇编程序外部获取

来自分类Dev

汇编程序的意外结果