我的问题是这个。此功能的用处是什么?我知道我得到一个统一变量的值,但这有什么用?例:
我分配一个的值
来自我的C / C ++程序的统一变量。
Program -> glUniform*(...); -> Shader -> glGetUniform*(...)
使用glGetUniform可以获取此变量或任何其他变量的值,但可以是uniform ... ...因为我可以直接从我的应用程序中获取该值,并且由于我不能直接在着色器中将值赋给uniform变量,所以这样做的用处是什么特征?
Program -> glUniform*(...); -> Shader -> glGetUniform*(...)
|
V
uniform value
最佳答案
glGet*()
函数的主要用途是调试。您几乎永远都不想在实际的渲染呈现代码中使用它们,因为它要求GL驱动程序在返回值之前先完成所有待处理的操作,以确保该值正确。这意味着仅缓存您关心的客户端状态会更快。