렌더링 기능에서 iOS 용 OpenGL es 2.x에서 텍스처를 일시적으로 비활성화하려면 어떻게합니까? 색상 선택을 구현 중입니다.opengl es 텍스처 비활성화 iOS
나는 glkit을 사용하지 않습니다. 셰이더를 사용하고 있으므로 glDisable(GL_TEXTURE_2D)
이 작동하지 않거나 작동하지 않습니다. glBindTexture(GL_TEXTURE_2D,0)
렌더링 기능에서 iOS 용 OpenGL es 2.x에서 텍스처를 일시적으로 비활성화하려면 어떻게합니까? 색상 선택을 구현 중입니다.opengl es 텍스처 비활성화 iOS
나는 glkit을 사용하지 않습니다. 셰이더를 사용하고 있으므로 glDisable(GL_TEXTURE_2D)
이 작동하지 않거나 작동하지 않습니다. glBindTexture(GL_TEXTURE_2D,0)
달성하고자하는 것에 따라 다릅니다. 텍스처를 비활성화하면 렌더링에 어떤 영향을 미치겠습니까?
텍스처 샘플을 기반으로 조각의 색상을 계산하는 셰이더가 있다면 텍스처를 바인딩하지 않으면 텍스처 대신 사용할 수있는 것은 무엇입니까? 색깔?
나는 2 옵션을 참조하십시오
을 -
B를 (당신이 속성을로드하는 경우 또는 버텍스 컬러) 2 개 쉐이더, 하나 개의 지원 텍스처, 하나 개를 사용하여 고정 색상을 사용 - 하나의 쉐이더와 조종사를 사용 유니폼을 사용하여 (텍스처 또는 색상) 렌더링.
옵션 B는 훨씬 더 많은 성능을 제공합니다.
을 수행하는 방법에 대한 첫 번째 질문에 대한 편집 : 내가 B을 어떻게
if (Texture == 0) {
gl_FragColor = vec4(1.0,0.0,0.0,0.0); //red color
} else{
gl_FragColor = texture2D(Texture, TexCoordOut);
}
? 'glUniform1i (glGetUniformLocation (programHandle, "텍스처"), 0);':; 내가 뭐하는 거지 기능을 렌더링 내을에서 '다음 'gl_FragColor = texture2D (텍스처, TexCoordOut) : 여기 내 쉐이더입니다 – amir
간단한 해결책은 다음과 같습니다 : if (Texture == 0) { gl_FragColor = vec4 (1.0,0.0,0.0,0.0); // 붉은 색 } else { gl_FragColor = texture2D (텍스처, TexCoordOut); } –
감사합니다. 훌륭한 작품입니다 – amir