NVIDIA Cg编译器错误C1307

时间:2013-04-11 10:25:25

标签: opengl-es glsl nvidia cg

当我尝试使用Cg编译以下着色器(有效的webGL着色器)时:

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);
}

使用命令:

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

我收到错误:

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

我知道我错过了一些明显的东西,我只是无法弄清楚它是什么

0 个答案:

没有答案