문제

이것은 간단한 질문입니다. 나는 OpenGL 질감이 있고 불투명도를 바꿀 수 있기를 원합니다. 어떻게해야합니까? 텍스처에는 이미 알파 채널이 있고 블렌딩은 잘 작동하지만 전체 텍스처의 불투명도를 줄이고 배경으로 사라질 수 있기를 원합니다. 나는 함께 피었다 glBlendFunc, 그러나 운이 없으면 - 나는 같은 것을 필요로하는 것 같습니다. GL_SRC_ALPHA_MINUS_CONSTANT, 사용하지 않습니다. 나는 OpenGl es와 함께 iPhone에서 일하고 있습니다.

도움이 되었습니까?

해결책 3

아이디어에 감사드립니다. 나는 glcolor4f와 gltexenv와 함께 연주했으며 마침내 Gltexenv 맨 페이지를주의 깊게 읽도록 강요했습니다. 인력은 GL_MODULATE 텍스처링 모드에서 결과 색상은 텍스처링 색상 (C = CF × CT)으로 들어오는 조각에 곱하여 계산된다고 말합니다. 나는 glcolor4f (1, 1, 1, 불투명도)를 시도했지만 작동하지 않았지만 원하는 불투명도를 부름의 네 가지 인수 모두에 전달하는 것이 트릭을 수행했습니다. (그래도 왜 그런지 잘 모르겠습니다.)

다른 팁

나는 OpenGL ES에 대해 전혀 모른다. 그러나 Standard OpenGL에서는 사용하기 전에 질감의 색상을 선언하여 불투명도를 설정합니다.

//          R,   G,   B,   A
glColor4f(1.0, 1.0, 1.0, 0.5);

이 예제는 질감의 색상에 영향을 미치지 않고 50% 알파를 제공합니다. 다른 값을 조정하면 텍스처 색상도 이동할 수 있습니다.

텍스처 콤비너를 사용하십시오. 텍스처 스테이지를 수행하도록 설정하십시오 GL_MODULATE 질감과 일정한 색 사이의 작동. 그런 다음 코드에서 일정한 색상을 변경합니다 (glTexEnv, GL_TEXTURE_ENV_COLOR).

이것은 성능 측면에서 "무료"로 이루어져야합니다. 대부분의 경우 (전부가 아닌 경우) 그래픽 칩 조합 작업은 동일한 수의 GPU 사이클 (일반적으로 1)을 사용하므로 텍스처를 사용하는 것만으로는 변조 작업 (또는 기타 작업)을 사용하는 것이 정확히 동일한 비용입니다.

기본적으로 두 가지 옵션이 있습니다. GL_MODULATE를 사용하여 텍스처에 GLTEXENV를 사용하고 GLCOLOR4*를 사용하여 색상을 지정하고 알파 채널에 비대형 레벨을 사용하십시오. 텍스처를 처음로드 할 때 Gltexenv는 한 번만 발행해야합니다. 이 시나리오는 Vertex-Attributes의 색상을 지정하면 작동하지 않습니다. 그것들은 당신이 설정할 수있는 모든 glcolor4* 색상을 무시할 것입니다. 이 경우 두 가지 옵션 중 하나에 의지 할 수 있습니다. 텍스처 콤바이너 사용 (고정 파이프 라인에서 사용하기가 좋지 않음) 또는 각 개별 정점의 정점 색상 속성을 "수동으로"변경하십시오 (바람직하지 않을 수 있습니다. 더 큰 메쉬).

가장 간단한 방법은 텍스처의 알파 값을 즉석에서 바꾸는 것입니다. 어느 시점에서 텍스처에 대해 OpenGL을 알리기 때문에 메모리에 비트 맵이 있습니다. 따라서 텍스처를 동일한 텍스처 ID로 다시 반드시하십시오. 메모리에 있지 않은 경우 (공간 제약으로 인해 ES에 있기 때문에) 텍스처를 다시 버퍼로 검색하여 사용합니다. glgetteximage (). 그것이 깨끗한 솔루션입니다.

그러나 운영 저장/검색은 약간 비용이 많이 들기 때문에 다른 솔루션을 원할 수 있습니다. 그것에 대해 생각하면, 당신은 텍스처를 표시하는 지오메트리 뒤에있는 지오메트리로 작업하거나 단순히 질감을 보유하는 지오메트리의 재료/색상에서 작업 할 수 있습니다. 백 지오메트리의 부가적인 블렌딩을 원할 것입니다. glblendfunc 사용

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA),

당신은 "쉽게", 더 중요하고 저렴하게 - 원하는 효과를 얻을 수 있습니다.

아마도 CG를 사용하여 이미지를 질감으로 만들 것입니다. CG를 사용할 때는 알파가 전형화되어 있으므로 Color4F Func의 RGBA에 알파를 사용해야하는 이유.

나는 당신이 검은 배경을 가지고 있다고 생각하고, 따라서 모든 색상의 양을 줄임으로써, 당신은 색상을 검은 색으로 효과적으로 사라지고있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top