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
私は明らかな何かが欠けていることを知っています、それが何であるかを理解することはできません