(在d3d中,与输入布局不匹配是一个硬错误)
解决方案Y:在D3D中,我创建了一个16字节的缓冲区,并使用某种默认颜色进行了初始化(当缺失的语义是color时,让我们将其作为我的典型用例),并指定跨度为零,以便重复一个元素无论索引缓冲区中的索引是什么,这种方式我都不需要用覆盖所有对象所需的最大缓冲区来阻塞VRAM。
但是查看glVertexAttribPointer时,我发现该API正在消耗我的步伐,并在指定零时使其自动运行。
任何解决方法?
#1 楼
禁用顶点属性数组,并使用glVertexAttrib
设置应使用的数据。#2 楼
您可以使用OpenGL 4.3的单独属性格式API或ARB_vertex_attrib_binding扩展名将跨度设置为零:glBindVertexBuffer(index, buffer, offset, 0);
跨度为零将是真实的跨度为零。 。
与
glVertexAttribPointer
API相比,这还具有使D3D用户看起来更加熟悉的优点。
评论
$ \ begingroup $
嘿,这很有趣。这可能更容易,因为我们的引擎更多地基于d3d方式。我明天再看
$ \ endgroup $
–v.oddou
17年4月5日在13:58