存储片段着色器的每个对象的数据

问题描述:

我有一个片段着色器,它使用几个基于每个对象设置的制服。有没有办法将这些制服存储在图形卡上?我听说过(但无法找到一个教程)顶点缓冲对象 - 有一招,存储在里面的信息,所以,我并不需要重新设定每次我得出一个新的对象时,变量做?存储片段着色器的每个对象的数据

每个对象都有很少的顶点,但它们是完全静态的。

有在OpenGL的更高版本确实统一缓冲对象http://www.opengl.org/wiki/Uniform_Buffer_Object

如果您使用的所有对象相同的着色器程序ID,那么你可以设置制服,一旦你渲染你的对象之前,作为它们的值会保持不变,直到你再次设置它们。所以例如在你的代码在这里装载和编译着色器源,设置统一的变量是所有对象的公共,然后渲染你的对象,只设置每个对象的制服。

,如果你有不同的对象不同的着色器,但你想在两者之间共享一些数据,其中一个答案均匀缓冲想法都可以使用。在您提到单个着色器时,这不是必要的。

+1

什么是效果,什么是ContentManager? ;) –

+0

哦,废话我认为这是一个问题,新华社有一段时间:)无论如何,着色制服的工作方式相同,现在编辑答案:) – edvaldig