#define PI 3.1415926535897932384626433832795 #define PI_2 1.5707963267948966192313216916398 attribute vec2 aTextureCoord; uniform mat4 prMvMatrix; uniform mat3 normMatrix; uniform vec3 directLightDir; varying vec2 vTextureCoord; varying float vLightWeight; void main(void) { float ha = mix(-PI, PI, aTextureCoord.x); float va = mix(-PI_2, PI_2, aTextureCoord.y); float vCos = cos(va); vec3 position = vec3(sin(ha) * vCos, sin(va), cos(ha) * vCos); gl_Position = prMvMatrix * vec4(position * 0.1, 1.0); vLightWeight = max(dot(normMatrix * position, directLightDir), 0.0); vTextureCoord = aTextureCoord; }