1

When I try to use Cg to compile the following shader (a valid webGL shader):

attribute vec3 position;
attribute vec3 normal;

uniform mat4 modelMatrix;
uniform mat4 viewMatrix;
uniform mat4 projectionMatrix;
uniform mat3 normalMatrix;

varying vec3 vCameraNormal, vCameraEyeDirection, vCameraLightDirection;
varying vec3 vLightPosition, vWorldPosition;
varying float vSquareDistance;

void main(void) {
    vec3 lightPosition = vec3(0.0, 5.0, -5.0);

    vec3 worldPosition = (modelMatrix * vec4(position, 1.0)).xyz;
    vec3 cameraPosition = (viewMatrix * vec4(worldPosition, 1.0)).xyz;
    vCameraEyeDirection = -1.0 * cameraPosition;

    vec3 cameraLightPosition = (viewMatrix * vec4(lightPosition, 1.0)).xyz;
    vCameraLightDirection = cameraLightPosition - cameraPosition;

    float distance = length(lightPosition - worldPosition);
    vSquareDistance = (distance * distance);

    vLightPosition = lightPosition;
    vWorldPosition = worldPosition;

    vCameraNormal = normalMatrix * normal;
    //vCameraNormal = (viewMatrix * modelMatrix * vec4(normal, 0.0)).xyz;

    gl_Position = projectionMatrix * vec4(cameraPosition, 1.0);
}

using the command:

cgc.exe -debug -entry main -profile glslv -ogles -o outfile infile

I get the error:

(0) : error C1307: non constant expression for array size

I know Im missing something obvious, I just cant work out what it is

4

0 回答 0