답변:
첨가제 혼합, 즉 glBlendFunc (GL_ONE, GL_ONE) 및 glEnable (GL_BLEND).
지연 렌더러의 경우 g- 버퍼의 정보를 사용하여 모든 라이트를 하나의 라이트 렌더 타겟으로 집계 한 다음 최종 백 버퍼 이미지를 만드는 동안 라이트 렌더를 위해 해당 렌더 타겟을 샘플링합니다.
기본적으로 지오메트리 패스를 통해 모든 게임 지오메트리를 실행하여 g- 버퍼를 만듭니다. 거기서부터 g- 버퍼를 라이트 패스 셰이더에 공급합니다. 각 라이트는 전체 화면 쿼드를 사용하여 패스를 통과합니다. 이렇게하면 픽셀 셰이더가 g- 버퍼에서 보이는 모든 표면의 광 강도를 계산 한 다음이를 렌더 렌더 대상에 추가 할 수 있습니다. 각 라이트의 라이트 강도를 라이트 버퍼에 추가하기 만하면 강도를 0에서 1로 고정해야합니다.
서로 다른 유형의 조명 (점, 스포트라이트, 평행)을 처리하기 위해 수행해야 할 것은 일정한 버퍼를 사용하여 실행할 조명 절차를 지정하여 조명을 더욱 견고하게 만드는 것입니다.
이것보다 더 나은 대답이있을 수 있지만, 쉐이더에서 두 번째 조명을 수행하는 데 필요한 코드를 반복하면 하나의 객체 대신 두 개의 조명을 처리 할 수 있습니다. 두 번째 조명과 이음새에 대한 많은 코드를 작성해야하지만 약간의 중복이 필요하지만 작동한다는 것을 알고 있습니다. 그러나 누군가가 희망적으로 지적 할 때보 다 우아한 해결책이있을 것이라고 믿습니다.