프래그먼트 쉐이더에서 동시에 액세스해야하는 N 텍스처 단위가 있습니다. N은로드되는 데이터에 따라 다릅니다. iOS의 OpenGL ES 2.0의 쉐이더에서 텍스처 유닛의 수를 가변
// illegal syntax?
uniform sampler2D tex[N];
는 또한, sampler2DArray에서 OpenGL ES 2.0에서 지원 보이지 않습니다 그래서, 쉐이더에서, 내가 좋아하는 뭔가를해야합니다.
위의 내용을 달성하는 데 사용할 수있는 다른 트릭이나 GLSL 전 처리기 구조가 있는지 궁금합니다.
또는 셰이더 코드를 동적으로 생성하는 것이 더 좋은 옵션입니까? 나는 다음과 같은 코드를 생성하고, 쉐이더로드 할 수 :
uniform sampler2D tex1;
...
uniform sampler2D texN;
MAX_VALUE 유형은 무엇입니까? 설정은 어디입니까? 위의 내용이 합법적 인 구문이라고 생각하지 않습니다. –
MAX_VALUE 상수 (16, 32, 64) – labotsirc
N이 데이터에 의존하므로 작동하지 않습니다. 위의 작업을 수행하려면 쉐이더를 동적으로 생성해야합니다. 또한, ES 2.0에서 지원되는 sampler2D의 일정한 배열이 있습니까? 나는 그것을 의심한다. –