0
나는 기본적으로 이것이 알파 블렌딩
(SRC_ALPHA, ONE_MINUS_SRC_ALPHA)
, 사용하려는
frag_out.aaaa * frag.out + ((1.0, 1.0, 1.0, 1.0) - frag_out.aaaa) * pixel_color
의 화면에 이미 픽셀의 색상이 (1.0, 1.0, 1.0, 1.0)
라고하자가 나는 현재 렌더링하고 색상은 (1.0, 1.0, 1.0, 0.4)
입니다 렌더링 할 때 화면의 결과 색상은 알파 0.76입니다 (이전에는 완전히 불투명했지만)
실제로 :
(0.4, 0.4, 0.4, 0.4) * (1.0, 1.0, 1.0, 0.4) + (0.6, 0.6, 0.6, 0.6) * (1.0, 1.0, 1.0, 1.0) = (1.0, 1.0, 1.0, 0.76)
그래서 기본적으로 화면의 색상이 불투명 (흰색)이었고 화면 위에 투명 스프라이트를 놓은 후 화면이 투명 해져 (0.76 알파) 배경을 볼 수있었습니다. 다음과 같이 혼합하면 완벽 할 것입니다.
(0.4, 0.4, 0.4, 1.0) * (1.0, 1.0, 1.0, 0.4) + (0.6, 0.6, 0.6, 0.6) * (1.0, 1.0, 1.0, 1.0) = (1.0, 1.0, 1.0, 1.0)
달성 할 수 있습니까? 그렇다면 어떻게? 혼합 기능 이후의 OpenGL 3.0 이상을 사용하여 RGB과 사건에 대한 A.이이 대상에 대한 혼합 비율을 지정하는 마지막 매개 변수
glBlendFuncSeparate(GL_SOURCE_ALPHA, GL_ONE_MINUS_SOURCE_ALPHA, GL_ONE, GL_ONE);
것 개별적으로이 설정 될 때
고마워요! CG 쉐이딩 언어로 이러한 유형의 블렌딩을 지정하는 방법을 알고 있습니까? – Terko
죄송 합니다만, CG는 사용하지 마십시오. – BDL