2009-08-24 4 views
1

OpenGL 렌더링에서 사용되는 텍스처의 밝기를 높이고 싶습니다. 밝은 빨강이나 흰색으로 만드는 등. 이것은 모든 스프라이트가 텍스처로 OpenGL 다각형에 매핑되는 2D 렌더링 환경입니다. 데이터를 조작하는 데 거의 아무것도 알지 못하고 엔진이 텍스처 캐시로 작동하므로 전체 표면을 변경하면 텍스처를 사용하는 모든 것에 영향을 미칩니다. "마스크"를 사용하여 효과를 시뮬레이트하고 스프라이트를 단색으로 만들 수 있도록 오버레이하여 메모리를 제거합니다. 다른 해결책이 있습니까?OpenGL 텍스처의 불투명도 변경

답변

2

필요하다면, 이것을 수행하는 매우 간단한 GLSL 프래그먼트 쉐이더를 작성할 수 있습니다. 문자 그대로 하나의 라이너입니다.
뭔가 같은 : 아마도

uniform sampler2d tex; 
void main() 
{ 
    gl_FragColor = texture2d(tex, gl_TexCoord[0]) + gl_Color; 
} 
+0

+1. 어쨌든 고정 된 pipleline 대신 쉐이더를 사용하도록해야합니다. – jcoder

0

GL_MODULATE을 사용하면 텍스처 색상에 현재 색상을 곱할 수 있습니다.
this page의 텍스처 튜토리얼을 참조하십시오.

+0

너무 잘 작동하지 않으며, 기본 설정 인 것처럼 보이므로 이미 사용하고 있습니다. 스프라이트를 사용하고 색상 (1,0,0) (전체 빨간색)을 설정할 때 문자 그대로 스프라이트에서 녹색과 파란색을 제거합니다. 다른 두 구성 요소를 제거하는 대신 실제 빨간색을 추가하고 싶습니다. 예를 들면 –

관련 문제