【发布时间】:2015-01-06 03:14:01
【问题描述】:
我是一个初学者,我尝试通过画一个正方形来画一个圆形。但是失败了!这是我的顶点着色器:
#define RADIUS 0.5
#define WHITE vec4(1.0,1.0,1.0,1.0)
#define RED vec4(1.0,0.0,0.0,1.0)
attribute vec2 a_position;
varying vec4 v_color; //defines color in fragment shader
....
void main(){
gl_Position = a_position;
v_color = (a_position[0]*a_position[0]+a_position[1]*position[1]<RADIUS*RADIUS) ? RED : WHITE;
}
它不能按我的意愿工作。为什么?
【问题讨论】:
-
因为这个颜色计算应该在片段着色器中,而不是在顶点一中。顶点着色器可以重新对齐您的顶点,但无论您多么努力,您都无法仅从四个顶点制作几何圆。