glGetUniform有用吗?

时间:2014-02-11 17:53:18

标签: opengl glsl

我的问题是这个。这个功能的用处是什么?我知道我得到了一个统一变量的值,但它有什么用呢?例如:

我指定了a的值 我的C / C + +程序中的统一变量。

    Program  -> glUniform*(...);  -> Shader -> glGetUniform*(...)

使用glGetUniform我得到这个或任何其他变量的值,但是统一...因为我可以直接从我的应用程序获取值,因为我不能直接为着色器中的统一变量赋值,是什么这个功能有用吗?

    Program  -> glUniform*(...);  -> Shader -> glGetUniform*(...)
       |
       V
  uniform value

1 个答案:

答案 0 :(得分:9)

glGet*()函数的主要用途是用于调试。您几乎从不想在实际的 rending 呈现代码中使用它们,因为它要求GL驱动程序在返回值之前完成任何挂起的操作,以确保它是准确的。这意味着只需缓存您关心客户端的状态就会更快