셰이더에는 다양한 유니폼 이름 + 특성이 많이있을 수 있습니다. 일반적인 쉐이더 유니폼의 이름을 미리 알 필요가 없도록 코드를 하드 코딩하여 위치를 파악할 수 있도록 시스템을 만들 수 있습니까? 나는 OpenGL을 사용한다.일반적으로 셰이더 유니폼을 사용하는 방법은 무엇입니까?
0
A
답변
2
불행히도, 어떤 시점에서 셰이더의 통일 된 이름이 무엇인지, 그리고 이들이 참조하는 것이 무엇인지 알아야합니다 ... 주위를 둘러 볼 방법이 없습니다.
대부분의 그래픽/게임 엔진은 규칙에 따라 작동합니다. 특정 유니폼은 엔진에 의해 설정되며, 셰이더는 필요에 따라이를 사용합니다. 일부는 구성을 추가하므로 각 셰이더는 필요한 유니폼을 지정할 수 있지만 일반적으로 규칙에 따라 이름이 지정됩니다.
1
명명 규칙을 사용하거나 셰이더 문자열을 직접 구문 분석하여 형식, 기호 및 선택적 저장 지정자를 가져옵니다. 전자의 옵션은 쉐이더 프로그래머에게 책임을 묻는 반면, 후자의 솔루션은 어플리케이션 프로그래머에게 부담을줍니다. 이러한 코드는 OpenGL 3.1의 코어로 승격 된 GL _ ARB _ uniform _ buffer _ object 확장자를 사용하여 훨씬 더 우아하고 효율적으로 만들 수 있습니다.