2013-02-11 4 views
1

GLSL을 통해 스텐실 버퍼 텍스처를 렌더링하려하지만이를 찾을 수 없습니다. 스텐실 텍스처는 GL_DEPTH24_STENCIL8 형식을 사용하여 깊이 텍스처와 함께 포장됩니다. 스텐실 데이터는 아니지만 텍스처의 x/y/z 값을 사용하여 깊이 데이터를 렌더링하는 것이 좋다고 알았습니다. 그래서 저는 스텐실 버퍼를 GL_RED 텍스처로 blit하려고한다는 슈퍼 ​​아이디어를 생각해 냈습니다. 어떤면에서 가능합니까?스텐실 버퍼를 컬러 버퍼에 블리 팅합니다. 가능한가?

glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, FBO1); 
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, FBO2); 
glBlitFramebufferEXT(0, 0, X, Y, 0, 0, X, Y, GL_STENCIL_BUFFER_BIT, GL_NEAREST); 
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0); 

을 그리고 여기가 붙어있는 곳입니다 : 여기

는 FBO2에 FBO1에서 스텐실 버퍼 블럭 전송 것이 방법입니다. 어떤 아이디어?

답변

2

한 유형의 데이터 만 해당 유형의 데이터로 블리 트할 수 있습니다. 색상 데이터를 GL_DEPTH_COMPONENT으로 블리 팅 할 수 없으며 깊이 데이터를 색상으로 블 리팅 할 수 없습니다. 그리고 스텐실을 색으로 채우지도 못합니다.

원하는 것을 수행하는 유일한 방법은 GL 4.3의 일부인 ARB_stencil_texturing입니다. 하드웨어에 사용할 수 있는지 여부는 하드웨어에 따라 다릅니다.

관련 문제