(这个问题是在 WebGL 的上下文中,但据我所知适用于所有 GLSL。)我的理解是 GLSL 基元可以具有不同的精度(位数,因此字节数),具体取决于它们运行的环境. 这对写入转换反馈缓冲区的内容有何影响?
假设我有一个写出
float
值的顶点缓冲区,我是否应该期望写入输出缓冲区的内容以与精度相同的方式变化?如果是这样,我如何才能提前预料到这一点并以允许我正确解释所写内容的方式设计我的程序?
发布后立即找到答案。来自 OpenGL 关于变换反馈的文档:
捕获的数据格式
...数据按照 varyings 数组指定的顺序写入 (做交错渲染时)... 基本类型的各个组件 的输出是按顺序写的。
组件将始终是浮点数/双精度、有符号整数或无符号整数,使用 GLfloat/GLdouble、GLint 和 GLuint 的大小。