2012-07-02 5 views
0

내 텍스처 중 하나를 투명하게 만들어야합니다. 내가 어떻게 해? 내 질감을 처리OpenGL 투명 텍스처 (블렌드)

모든 코드는 다음과 같습니다

glBindTexture(GL_TEXTURE_2D, textureName); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureImg); 

무엇 내가 변경해야/(전체 알파) 텍스처가 완전히 투명하게 추가?

+0

투명 텍스처가있는 것은 투명 지오메트리 렌더링과 동일하지 않습니다. 블렌딩은 당신이 필요로 할 것이고, Z- 정렬은 아마 또 다른 것입니다. – Kos

+0

@Kos 나는 내가하고있는 일을 설명 할 것이다. 이미지를로드하고 텍스쳐를 만듭니다. 그리고 텍스처의 알파 채널을 0으로 변경해야합니다.이 경우 브러시 도구와 같이 알파를 0.0에서 1.0으로 변경할 수 있습니다. 멀티 텍스처링을 사용하기 때문에 한 텍스처가 다른 텍스처에 있으므로 두 번째 텍스처 알파가 0으로 설정된 경우 첫 번째 텍스처 만 표시되고 1 초로 변경하면 텍스처가 표시됩니다. 나는 z 정렬을 필요로하지 않을 것이라고 생각한다. 하지만 도움을 주셔서 감사합니다. – hockeyman

+0

아, 투명 지오메트리를 그리지 않고 불투명 한 오브젝트에서 최종 색상을 얻기 위해 서로 다른 텍스처를 혼합하는 데 알파 채널을 사용하려는 경우 블렌딩이나 z 정렬이 필요하지 않습니다. 프래그먼트 쉐이더의 모든 텍스처를 샘플링하고 원하는 방정식을 사용하여 최종 색상을 얻으십시오 (예 : 'T1.rgb * T1.a + T2.rgb * (1-T1.a')). – Kos

답변

2

제공된 코드는 단순히 텍스처를 설정합니다. 또한

glEnable(GL_BLEND); 

를 사용하고 적절한 를 설정 혼합 활성화해야합니다.

+0

감사합니다. 제안 된 솔루션을 시도하고 피드백을주십시오. – hockeyman

+0

그것은 작동합니다. 다시 한번 감사드립니다 :) – hockeyman