我是一名初學者,我嘗試畫一個正方形畫一個圓。但失敗了!這是我的頂點着色器:頂點着色器如何工作?
#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;
}
它不工作,因爲我想。爲什麼?
因爲這種顏色的計算應該是片段着色器,而不是頂點一個。頂點着色器可以重新對齊頂點,但無論您嘗試多麼艱難 - 您都無法從四個頂點創建幾何圓。 – keltar
[這可能會有幫助](http://webglfundamentals.org/webgl/lessons/webgl-how-it-works.html) – gman