후 처리 효과를 수행 할 수 있도록 여러 렌더 대상에 다각형 장면을 렌더링하고 있습니다. 그러나 프래그먼트 쉐이더에서 설정 한 값은 픽셀 쉐이더에 정확하게 반영되지 않는 것 같습니다.쉐이더에서 왜곡 된 픽셀 값을받는 WebGL 렌더링 버퍼
지금 파이프 라인은 다음과 같다 :
- 화면으로 화면 크기의 쿼드로 버퍼 렌더링 중간 버퍼
- (아래, 단순한 쉐이더 사용) 기본적인 다각형 렌더링.
I가 중간 버퍼를 참조 WebGL에 검사기 (http://benvanik.github.com/WebGL-Inspector/) 사용하고 (gl.createFrameBuffer()
를 사용하여 작성).
gl_FragColor = vec4(1, 0, 0, 0.5);
그리고이 내 그리기 전에 전화 :
gl.disable(gl.BLEND);
나는이에 픽셀을 만들 기대, 이런 식으로 뭔가를 다각형을 그릴 때
나는 아주 간단한 조각 쉐이더가 정확하게 (255,0,0,128)의 값을 가지는 버퍼. 실제로는, (255,0,0,64)의 값을 가지는 픽셀을 생성한다.프로그램이 상당히 크고 엉성하기 때문에 답변이 즉시 나타나지 않으면 구체적인 내용으로 게시물을 업데이트하겠습니다.
감사합니다.
픽셀의 알파 값이 무엇인지 어떻게 알 수 있습니까? 이 픽셀 값을 쓰고 있다고 당신은 무엇을 그리기 시작합니다. –
아마 조금 더 많은 정보가 필요 하겠지만, 즉시 생각해보십시오. 안티 앨리어싱을 사용할 수 있습니까? 그렇다면 샘플링중인 픽셀이 다각형의 가장자리에있는 경우 예상보다 낮은 값으로 블렌드 될 수 있습니다. – Toji
@ NicolBolas : WebGL Inspector를 사용하여 직접 픽셀의 값을 검사하고 최종 렌더링에서 화면 값을 샘플링하고 후속 처리 단계에서 그 동작을 관찰했습니다. 이 값은 위의 간단한 조각 쉐이더가있는 간단한 폴리곤에서 프레임 버퍼로 그려지고 프레임 버퍼는 스크린 버퍼에 렌더링됩니다. – Ipsquiggle