,我已經看到了一個着色器腳本,它不會。但我被有些迷糊延期着色變換頂點着色器does.such如下所示:opengl中光計算所屬的空間是什麼?上週
VERT:
varying vec3 normals;
varying vec4 position;
uniform mat4 ModelMatrix;
uniform mat4 WorldMatrix;
void main(void)
{
// Move the normals back from the camera space to the world space
mat3 worldRotationInverse = transpose(mat3(WorldMatrix));
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
**normals = normalize(worldRotationInverse * gl_NormalMatrix * gl_Normal); <<<<<**
position = gl_ModelViewMatrix * gl_Vertex;
gl_FrontColor = vec4(1.0, 1.0, 1.0, 1.0);
}
斷枝:
varying vec4 position;
varying vec3 normals;
varying mat4 TBN;
uniform sampler2D tDiffuse;
void main(void)
{
gl_FragData[0] = vec4(texture2D(tDiffuse,gl_TexCoord[0].st).rgb, 0);
gl_FragData[1] = vec4(position.xyz,0);
gl_FragData[2] = vec4(normals.xyz,0);
}
我真的不明白,爲什麼.beacause,我認爲這是在眼位(cameraspace)正常的原因變換正常到世界空間(模型空間),至少可以消除無形的頂點,甚至ploygon。我不知道我是否理解錯誤與否。
你的#版本指令在哪裏? – genpfault 2013-03-24 23:51:26