opengl - glGetUniform 有多大用处?

标签 opengl glsl

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

我分配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/

相关文章:

c++ - Opengl 纹理有时会在窗口调整大小时闪烁/移动

OpenGL L 系统渲染

opengl-es - 这个着色器中的 "uniform samplerXX iChannel0..3"是什么?

iphone - OpenGL ES 2.0 : Object rotation problem

sorting - GLSL奇偶合并排序

java - 在 OpenGL ES 2.0 中绘制球体

c - 为什么我在创建着色器类型 35663 时遇到运行时错误

opengl - 延迟渲染与基于图 block 的剔除概念问题

c++ - sfgui 没有构建,看起来像是 opengl 的问题

c++ - 为什么 SSAO 仅在特定角度/距离下起作用?