1

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

私は明らかな何かが欠けていることを知っています、それが何であるかを理解することはできません

4

0 に答える 0