Opengl 统一行为
Posted
技术标签:
【中文标题】Opengl 统一行为【英文标题】:Opengl uniform behaviour 【发布时间】:2015-01-07 15:44:34 【问题描述】:我注意到一些在 opengl 文档中没有很好解释的事情。如果我错了,请纠正我。
如果程序不是当时 opengl 使用的程序,则无法设置制服的值。这会产生错误。
如果您在程序 A 中设置了制服的值,然后切换到程序 B,然后再切换回程序 A,则该值保持不变。这个靠谱吗?
无法为当时未使用的程序设置统一值。有解决办法吗?
【问题讨论】:
【参考方案1】:Direct State Access extension(包含在核心 4.5 中)允许您使用 glProgramUniform*EXT
将统一设置为非绑定程序,您需要指定该程序。
制服按程序存储,
见 1
【讨论】:
顺便说一下,glProgramUniform*
实际上是 OpenGL 4.1 中的核心(它是与GL_ARB_separate_shader_objects
一起引入的),并且在提供GL_EXT_direct_state_access
的旧实现中也可用。以上是关于Opengl 统一行为的主要内容,如果未能解决你的问题,请参考以下文章