2012-08-23 3 views
0

질감이있는 쿼드를 그릴 필요가 있습니다. 내 텍스처에 알파 픽셀이 있습니다. 그래서해야 할 일 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);하나의 객체에 대해 다중 glBlendFunc

그게 다 좋아. 하지만 텍스처 마스킹을 달성하기 위해 쿼드 (glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);)에 다른 블렌딩 기능이 필요합니다. 내가 어떻게 해? 왜냐하면 둘 다 glBlendFunc를 설정하면 그 중 하나가 무시되기 때문입니다.

답변

2

블렌딩은 프레임 버퍼 연산이며 프리미티브별로 설정할 수 없습니다. 하나의 프리미티브에 여러 텍스처 레이어를 결합해야하는 경우 셰이더에서이 작업을 수행하고 선택한 혼합 기능으로 올바른 방식으로 상호 작용하는 복합 색상/알파를 내 보냅니다. 다른 혼합 함수가 필요한 경우 별도의 그리기 호출을 사용하여이 작업을 수행해야합니다.

+0

그래서 프레임 버퍼에 한 가지 유형의 블렌드를 사용하여 텍스처를 그린 다음 나중에 다른 블렌드와 함께 해당 프레임 버퍼를 그립니다. – hockeyman

+0

@ JuliusPetraška : 예.하지만 ** the **에서 얻은 효과는 셰이더를 사용하면 더 쉽게 얻을 수 있습니다. – datenwolf

관련 문제