//-------------------------------------------------------------------
// 顶点光照
// 顶点着色器的代码
const int maxLightCount = 32;
varying vec4 v_fragmentColor;
varying vec2 v_texcoord;
attribute vec4 vPosition;
attribute vec4 vNormal;
attribute vec2 vTexCoord;
uniform vec4 vCameraPos;
uniform mat4 MvpMatrix;
uniform bool bEnabled[maxLightCount];
uniform vec4 vLightPos[maxLightCount];
uniform vec4 vLightClolor[maxLightCount];
uniform vec4 vLightAttenuation[maxLightCount];
void main() {
gl_Position = MvpMatrix * vPosition;
vec4 vEye = vCameraPos - vPosition;
vec4 vColour = vec4(0.0);
for(int i=0; i<maxLightCount; i++){
if(bEnabled[i] == false){
continue;
}
vec4 lightDir = normalize(vLightPos[i]-vPosition);
vec4 halfVector=normalize(lightDir+vEye);
float att = 1.0;
if(vLightAttenuation[i].w > 0.0){
float d = length(vLightPos[i]-vPosition);
att = 1.0/(vL