Android: Open GL ES 中的 Uniform、mat4 和 vec4 是什么意思?
Android: What is meaning of Uniform, mat4 and vec4 in Open GL ES?
在此代码中(来自 Android Developer 网站):
private final String vertexShaderCode =
"uniform mat4 uMVPMatrix; \n"
"attribute vec4 vPosition; \n" +
"void main(){ \n" +
" gl_Position = uMVPMatrix * vPosition; \n" +
"} \n";
uniform
和mat
4是什么意思?
and attribute
and vec4
是什么意思?
Uniform
是每个绘制调用设置的值。例如,您可以为绘制的整个形状设置颜色,并且对于所有着色器调用,统一值将相同。这与每个顶点的 attribute
或具有每个片段但必须在顶点着色器中设置的 var
相对。
mat4
是表示 4x4 矩阵的类型。它由 16 个浮点值组成。这意味着它需要作为 float[16]
类型或包含至少 16 个浮点值的 float*
指针传递给着色器。
attribute
表示将按顶点传递的值。对于每个属性,您必须绑定其 ID、启用它并设置指向 CPU 中的属性的指针。每个顶点的值将不同。一些常见的用途是位置、纹理坐标、法线、顶点颜色...
vec4
是表示 4 维向量的类型。它由 4 个浮点值组成。它可以用于许多事情,例如位置,法线..甚至颜色通常是 vec4
. 类型
在此代码中(来自 Android Developer 网站):
private final String vertexShaderCode =
"uniform mat4 uMVPMatrix; \n"
"attribute vec4 vPosition; \n" +
"void main(){ \n" +
" gl_Position = uMVPMatrix * vPosition; \n" +
"} \n";
uniform
和mat
4是什么意思?
and attribute
and vec4
是什么意思?
Uniform
是每个绘制调用设置的值。例如,您可以为绘制的整个形状设置颜色,并且对于所有着色器调用,统一值将相同。这与每个顶点的attribute
或具有每个片段但必须在顶点着色器中设置的var
相对。mat4
是表示 4x4 矩阵的类型。它由 16 个浮点值组成。这意味着它需要作为float[16]
类型或包含至少 16 个浮点值的float*
指针传递给着色器。attribute
表示将按顶点传递的值。对于每个属性,您必须绑定其 ID、启用它并设置指向 CPU 中的属性的指针。每个顶点的值将不同。一些常见的用途是位置、纹理坐标、法线、顶点颜色...vec4
是表示 4 维向量的类型。它由 4 个浮点值组成。它可以用于许多事情,例如位置,法线..甚至颜色通常是vec4
. 类型