VC++,OpenGL中,SDLGLSL
我想知道如果有一種方法來實現跨越幾何結構的單一四平滑陰影。現在,使用我的點光源,陰影看起來很平滑,但是,強度沿着臉部的對角線細分上升。光線在頂點之間基本上是不可見的。
這是從光從左向右移動
正如我在表面上移動的光會發生什麼,它這樣做一致。在每個頂點獲得最亮並從那裏消失。
我是否被迫上了細分,以實現更平滑,更徑向的陰影?或者有沒有一種方法呢?
下面是我使用的着色器:
VERT
varying vec3 vertex_light_position;
varying vec3 vertex_normal;
void main()
{
vertex_normal = normalize(gl_NormalMatrix * gl_Normal);
vertex_light_position = normalize(gl_LightSource[0].position.xyz);
gl_FrontColor = gl_Color;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
斷枝
varying vec3 vertex_light_position;
varying vec3 vertex_normal;
void main()
{
float diffuse_value = max(dot(vertex_normal, vertex_light_position), 0.0);
gl_FragColor = gl_Color * diffuse_value;
}
我萬一有人幾何納悶:
glBegin(GL_QUADS);
glNormal3f(0.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(pos_x, pos_y - size_y, depth);
glTexCoord2f(1.0f, 1.0f); glVertex3f(pos_x + size_x, pos_y - size_y, depth);
glTexCoord2f(1.0f, 0.0f); glVertex3f(pos_x + size_x, pos_y, depth);
glTexCoord2f(0.0f, 0.0f); glVertex3f(pos_x, pos_y, depth);
glEnd();
該圖像非常小。你能放大一張大圖嗎? – 2011-12-16 08:30:08