我的问题是这样的。这个功能有什么用处呢?我知道我得到了一个统一变量的值,但是它有什么用呢?示例:
我分配a的值 我的 C/C++ 程序中的统一变量。
Program -> glUniform*(...); -> Shader -> glGetUniform*(...)
使用 glGetUniform,我可以获得这个变量或任何其他变量的值,但是统一...因为我可以直接从我的应用程序获取该值,并且由于我无法直接将值分配给着色器中的统一变量,所以什么是这个功能有什么用处?
Program -> glUniform*(...); -> Shader -> glGetUniform*(...)
|
V
uniform value
最佳答案
glGet*()
函数的主要用途是调试。您几乎不想在实际的 rending 渲染代码中使用它们,因为它要求 GL 驱动程序在返回值之前完成所有挂起的操作,以确保其准确。这意味着仅缓存您关心的客户端状态会快得多。
关于opengl - glGetUniform 有多大用处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709369/