1
我试图通过将屏幕空间点投影到视图空间以用于照明来避免使用位置缓冲区。我已经尝试乘以逆投影矩阵,但是这并没有给出视图空间点。添加矩阵乘法以避免位置缓冲区值得吗?是延迟渲染所需的位置缓冲区吗?
最后通着色:
vec3 ScreenSpace = vec3(0.0,0.0,0.0);
ScreenSpace.xy = (texcoord.xy * 2.0) - 1.0;
ScreenSpace.z = texture2D(depthtex, texcoord.xy);
vec4 ViewSpace = InvProjectionMatrix * vec3(ScreenSpace, 1.0);
ViewSpace.xyz = ViewSpace.w;
嘿,这样计算出的UV坐标看起来更准确,我在做什么是顶点着色器texcoord =((gl_ModelViewProjectionMatrix * gl_Vertex)+1.0)/2.0 – erai