我的问题是这个。这个功能的用处是什么?我知道我得到了一个统一变量的值,但它有什么用呢?例如:
我指定了a的值 我的C / C + +程序中的统一变量。
Program -> glUniform*(...); -> Shader -> glGetUniform*(...)
使用glGetUniform我得到这个或任何其他变量的值,但是统一...因为我可以直接从我的应用程序获取值,因为我不能直接为着色器中的统一变量赋值,是什么这个功能有用吗?
Program -> glUniform*(...); -> Shader -> glGetUniform*(...)
|
V
uniform value
答案 0 :(得分:9)
glGet*()
函数的主要用途是用于调试。您几乎从不想在实际的 rending 呈现代码中使用它们,因为它要求GL驱动程序在返回值之前完成任何挂起的操作,以确保它是准确的。这意味着只需缓存您关心客户端的状态就会更快 。