layout( triangles ) in;
layout( triangle_strip, max_vertices=32 ) out;
uniform float uShrink;
uniform mat4 uModelViewProjectionMatrix;
in vec3 vNormal[3];
out float gLightIntensity;
const vec3 LIGHTPOS = vec3( 0., 10., 0. );
vec3 V[3];
vec3 CG;
void
ProduceVertex( int vi )
{
gLightIntensity = dot( normalize(LIGHTPOS - V[vi]), \
vNormal[vi] );
gLightIntensity = abs( gLightIntensity );
gl_Position = uModelViewProjectionMatrix * vec4( CG + uShrink * ( V[vi] - CG ), 1. );
EmitVertex( );
}
voi......
阅读全文