내 GLSL 쉐이더에서 비 사각형 행렬을 사용하려하지만 컴파일 할 때 구문 오류가 발생합니다. 사용GLSL 쉐이더에서 비 - 정방 행렬을 지원하기 위해 필요한 것은 무엇입니까?
내 쉐이더 코드 :
uniform mat4 my_mat;
는 잘 컴파일합니다. 나는 그것을 변경하는 경우
는하지만 :
uniform mat4x3 my_mat;
난 내가 얻을 내 GL_VERSION 및 GL_SHADING_LANGUAGE_VERSION를 인쇄 할 경우
ERROR: 0:5: 'mat4x3' : syntax error syntax error
내가
uniform mat4x4 my_mat;
에 대한 유사한 오류가 얻을 : GL_VERSION : 2.1 NVIDIA-1.6.36 GL_SHADING_LANGUAGE _VERSION : 1.20
OpenGL을 Mac OS X 10.6 MacBook Pro에서 컴파일하고 실행하고 있습니다. this NVidia document 및 기타에 따르면, GLSL 1.20 및 GL 2.1은 비 - 정방 행렬 및이 구문의 지원을 포함해야합니다. 또 다른 캐치가 있습니까? 또는 구문 오류가 발생하는 이유를 해결하는 또 다른 방법은 무엇입니까? 내 쉐이더 코드의 맨 위에
#version 120
을 배치하면
정확히 그렇게해야합니다. 버전 스펙이 없으면 쉐이더는 1.10으로 컴파일됩니다. 나는 당신이 질문을하기 전에 이것을 시험해 보는 것이 좋은 생각이었을 것입니다. 질문을 한 후 분명히 몇 분만에 시도했기 때문입니다. 그러나 이제는 자의식이있는 대답으로 좋은 질문을 얻었습니다. –
'# version'이 없으면'#version 110'처럼 컴파일해야합니다.'# version'은 선택 사항이었던 마지막 버전이었습니다. –