OpenGL 쉐이더 빌더 v2.2.2를 사용 중이며 책에서 샘플 코드를 가져 왔습니다.컴파일시 OpenGL 쉐이더 빌더 오류가 발생했습니다.
#version 140
uniform vec3 CoolestColor;
uniform vec3 HottestColor;
in float Temperature;
out vec4 FragmentColor;
void main()
{
vec3 color = mix(CoolestColor, HottestColor, Temperature);
FragmentColor = vec4(color, 1.0);
}
내 문제 정점 셰이더
#version 140
uniform float CoolestTemp;
uniform float TempRange;
uniform mat4 MVPMatrix;
in vec4 mcVertex;
in float VertexTemp;
out float Temperature;
void main() {
Temperature = (VertexTemp - CoolestTemp)/TempRange;
gl_Position = MVPMatrix * mcVertex;
}
및 프래그먼트 쉐이더 버전 (140) 및 (320)는 지원되지 않기 때문에,이 코드를 실행한다. 그런 다음 버전을 제거하려고했는데 컴파일러에서 "전역 변수 컨텍스트에서 유효하지 않은 한정자"를 사용하고 'out'에 대해 동일하게 변경 한 다음 '다양하지만'조각 쉐이더에서 안으로/밖으로 교체하려고했습니다. "할당의 왼쪽 편 읽기 전용이 아니어야 함 "오류가 나타납니다. 버텍스 쉐이더의 경우 다양한 필드에 대한 경고는 다음 단계에서 읽지 않습니다. 예전 스타일의 코드를 새 것으로 수정하는 방법을 어떻게 알 수 있습니까? 그래서 GLSL을 처음 접했습니다.
을 마지막으로 몇 가지 명확한 정보, 대단히 감사합니다! – dan