【发布时间】:2011-06-21 10:28:58
【问题描述】:
我想根据它们在世界中的 xyz 位置来调整颜色。
我在片段着色器中试过这个:
varying vec4 verpos;
void main(){
vec4 c;
c.x = verpos.x;
c.y = verpos.y;
c.z = verpos.z;
c.w = 1.0;
gl_FragColor = c;
}
但颜色似乎会根据我的相机角度/位置而变化,我如何使坐标独立于我的相机位置/角度?
这是我的顶点着色器:
varying vec4 verpos;
void main(){
gl_Position = ftransform();
verpos = gl_ModelViewMatrix*gl_Vertex;
}
Edit2:改变了标题,所以我想要世界坐标,而不是屏幕坐标!
Edit3:添加了我的完整代码
【问题讨论】:
-
不要乘以你的 gl_ModelViewMatrix。
标签: opengl glsl fragment-shader