1
我收到這個錯誤,我無法訪問的PC上。非法矢量字段選擇長度
錯誤出現在深度剝離技術的init程序的Vertex Shader中。
ERROR: 0:42: error(#222) Illegal vector field selection length
ERROR: 0:42: error(#222) Illegal vector field selection length
ERROR: error(#273) 2 compilation errors. No code generated
這是VS:
#version 330
layout (location = 0) in vec3 position;
layout (location = 1) in vec3 normal;
layout (location = 2) in vec2 uv;
out vec3 cameraSpacePosition;
out vec3 cameraSpaceNormal;
out vec2 oUV;
uniform mat4 modelToWorldMatrix;
/*
* Layout {lighting, normal orientation, hasTexture, selected}
*/
uniform ivec4 settings;
layout(std140) uniform vehicleMatrices {
mat4 worldToCameraMatrix;
mat4 cameraToClipMatrix;
};
void main()
{
vec4 c = worldToCameraMatrix * (modelToWorldMatrix * vec4(position, 1.0));
gl_Position = cameraToClipMatrix * c;
cameraSpacePosition = c.xyz;
cameraSpaceNormal = mat3(worldToCameraMatrix) * (mat3(modelToWorldMatrix) * normal);
switch (settings.y) {
case 0:
cameraSpaceNormal = -cameraSpaceNormal;
break;
case 1:
float cosine = dot(cameraSpacePosition, cameraSpaceNormal)/(cameraSpacePosition.length * cameraSpaceNormal.length);
if (cosine > 0)
cameraSpaceNormal = -cameraSpaceNormal;
break;
}
oUV = uv;
}
我從來沒有與它有問題之前,我dev的大多Nvidia和這一個來自配備了ATI的FirePro M7740
我一臺機器也嘗試谷歌,當然,但沒有結果與引用的句子:「非法矢量字段選擇長度」..
我檢查了幾十次,它看起來很好,我,沒有任何向量長度上的錯誤..
任何線索?
我還沒有測試它,但看在GLSL文檔,你是對的。感謝您的提示,Reto – elect 2015-02-09 09:56:07
Reto,在Nvidia上工作,在Amd不..這是否意味着Nvidia驅動程序正在通過重新編譯來修復它? – elect 2015-04-16 09:10:16