2013-07-03 5 views

답변

3

텍스처가 첨부 된 오프 스크린 Framebuffer Object을 만들 수 있습니다. glBlendFunc(GL_ONE, GL_ONE)을 사용하여 첫 번째 렌더링을 수행 한 다음 입력 및 출력 텍스처를 뒤집고 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)을 사용하여 두 번째 렌더링을 수행합니다.

+0

두 텍스처가 동시에 첨부 된 경우 (색상 첨부 0 및 1), 셰이더가 양쪽 모두에 동일한 색상을 출력하고 첨부 파일에 대해 두 개의 개별 혼합 func을 사용하는 경우에도 가능합니까? – leemes

+0

@leemes 블렌드 함수는 전역 적이며 모든 것에 적용됩니다. 별도의 혼합을 수행하려면 쉐이더에서 개별적으로 구현해야합니다. –

+0

쉐이더에서 어떻게 블렌딩을 구현할 수 있습니까? AFAIK, 쉐이더는 호스트 프로그램에 설정된 블렌드 함수 세트를 사용하여 * unprogrammable * render 파이프 라인에 의해 블렌드되는 색상 (vec4)을 출력합니다. 물론, 미리 곱셈 된 알파를 가진 하나의 버퍼를 가질 수 있으며, 미리 곱셈 된 알파에 대해 작동하고 수동으로 알파 값을 셰이더의 두 번째 색상에 미리 곱하는 블렌드 함수를 선택하여 "일반"알파 블렌딩을 가진 두 번째 버퍼를 가질 수 있습니다. 그러나 이것이 옵션이 아닌 시나리오가 있습니다 (예 : 두 번째 버퍼의 색상 만 요약하려고하지만 첫 번째 버퍼는 "일반"알파 블렌딩을 수행해야합니다. – leemes