【发布时间】:2016-04-30 12:48:09
【问题描述】:
我可以将单个常量缓冲区设置到 D3D11 和 OpenGL 中的多个位置吗?这种方法有什么优势?我真的需要这个吗?你能想到你会使用它的案例吗?
D3D11 的梦想示例:
ID3D11Buffer* bufs[3] = { pBuffer1, pBuffer1, pBuffer1 };
dc->PSSetConstantBuffers(0, 3, &bufs[0]);
还有 OpenGL:
glBindBufferBase(GL_UNIFORM_BUFFER, 0, buffer1);
glBindBufferBase(GL_UNIFORM_BUFFER, 1, buffer1);
glBindBufferBase(GL_UNIFORM_BUFFER, 2, buffer1);
【问题讨论】:
-
我不知道你在问什么,但这可能是因为我不知道这是要解决什么问题。如果不只是我,请尝试使用更多信息更新问题,也许还有文章链接。除此之外,我看不出有什么理由不允许这样做,我也看不出这有什么用处。
-
如果您进行双面渲染并为正面和背面指定单独的材质(在两个单独的缓冲区中),这可能会很有用。然后,您可以通过设置相同的缓冲区为正面/背面设置相同的材质。
-
好的,很公平,找到了用例 :-) 有人知道它是否允许吗?