| varying vec3 varWorldPos; | |
| varying vec3 varWorldNormal; | |
| varying vec2 varTex0; | |
| // This is where actual shader code begins | |
| void main() { | |
| vec4 objPos = ATTRIB_position; | |
| vec4 worldPos = UNI_model * objPos; | |
| gl_Position = UNI_proj * worldPos; | |
| mat3 model3 = mat3(UNI_model[0].xyz, UNI_model[1].xyz, UNI_model[2].xyz); | |
| vec3 worldNorm = model3 * ATTRIB_normal; | |
| varWorldPos = worldPos.xyz; | |
| varWorldNormal = worldNorm; | |
| varTex0 = ATTRIB_texture0; | |
| } |