2010-07-29 4 views
1

예를 들어 셰이프 A, B, C를 그린 다음 블렌더를 설정 한 다음 셰이프 D를 그린 다음 셰이프 D가있는 곳이면 (1,1,1,0)의 배경색을 보여줍니다. 감사합니다OpenGL과 뺄셈 블렌딩?

+0

원본 소스 색상이 (1,1,1,0)이면 방법이 있어야합니까? – jmasterx

답변

0

다른 답변보다 훨씬 간단 :

  • 디스플레이는 A, B 및 C 정상적인 방법
  • glDisable (GL_DEPTH_TEST를) 모양;
  • glDisable (GL_ALPHA_TEST);
  • glDisable (GL_BLEND); 색상 (1,1,1,0)

하고 완료와

  • 디스플레이 모양 D.

  • +0

    간혹 가장 간단한 해결책이 가장 좋습니다;) 감사합니다 – jmasterx

    +0

    @Jex 당신이하려는 일에 따라 깊이 쓰기를 비활성화 할 수도 있습니다. – Calvin1602

    4

    나는 그것이 가능하다는 것을 직접 알지 못합니다. 그러나 동일한 효과를 얻으려면 몇 가지 가능성이 있습니다. 가장 깨끗한 것은 아마도 스텐실 버퍼에 1을 채우는 것으로 시작한 다음 모양 D를 0으로 스텐실 버퍼에 드로잉 한 다음 다른 모든 것을 그립니다 (스텐실 버퍼가 활성화되어 있음).

    +0

    +1 나는 그걸 제안하려하고있었습니다! – Blindy

    0

    glBlendEquation 할 수 있습니다.

    +0

    그 작전이 요구하는 것과 거의 비슷하지 않습니다. – Blindy

    +0

    아니에요? 모양이 1,1,1,0으로 설정된 경우 SUBTRACT 연산의 결과는 새 픽셀 1,1,1,0을 만들어야합니까? – jmasterx

    +0

    @Blindy 질문 제목은 빼기 혼합을 말하지만 이제는 그 질문을 언급합니다. 질문 본문은 완전히 다른 다른 문제를 말합니다. –