2012-07-14 4 views
2

와 OpenGL은 3 층 블렌딩.glBlendfunc는 다음의 효과를 달성하기위한() 파라미터 하겠는가 배경

1) first_layer, 단 하나의 색상. first_layer과 조화를 이루고 있지만 배경

2) 반투명 영역, ...

편집 아래

내가 희망 렌더링 내가 달성하기 위해 노력하고 무엇을 보여줄 수 있습니다. 간략한 설명을 바탕으로

This is the desired effect - green color between sphere and background and sphere is blended with color but not background

+2

"배경이 아닌 first_layer와 혼합 된 반투명 영역 ..."이것은 무엇을 의미합니까? 모형 이미지를 보여줄 수 있습니까? – Tim

+0

예 나는 몇 시간 후에 그것을 만들고 게시 할 것입니다. 고맙습니다! – Stpn

+0

질문에 렌더링을 추가했습니다. – Stpn

답변

0

This is the original - sphere over background

, 당신이 레이어 1 (first_layer) 위에 레이어 2 (영역)를 혼합 한 다음 해당 레이어 0 (배경) 꼭대기 블럭 전송 할 수처럼 들린다. 첫 번째 조화는 일반적인 알파 블렌딩 매개 변수를 사용하여 가능해야한다 :

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

그러나, glBlendFunc 꽤 오래된 것입니다. 요즘 데스크톱 및 모바일 지원 쉐이더에서 OpenGL을 사용하면 원하는 것을 훨씬 쉽게 얻을 수 있습니다.

+3

BlendFunc는 구식이 아니며, 여전히 중요한 부분입니다. 파이프 라인의 셰이더는 아직 작성 시점에 대상 프레임 버퍼를 샘플링 할 수있는 기능이 없습니다. – Tim

+0

@Tim 사실, 사실 - API의 대체 부분에서 뭔가 다른 것을 생각하고있었습니다. – gavinb