하나의 스레드에서 내 장면을 렌더링 한 다음 다른 스레드가 소유 한 창에 결과를 블렌드하고 싶습니다. 프레임 버퍼를 CPU 메모리로 다시 읽지 않으려면 framebuffer 객체를 사용하고 싶습니다. 지금까지 나는 이것을 (white texture) 작동시키지 못했고, 이것이 내가 OpenGL에 의해 지원되지 않는다고 믿게한다.컨텍스트/스레드간에 OpenGL 프레임 버퍼 객체를 공유 할 수 있습니까?
- 다른 컨텍스트간에 프레임 버퍼 개체를 공유 할 수 있습니까?
- 개체가 한 번에 하나의 스레드에 의해서만 바인딩된다는 점을 고려하면 다른 스레드간에 프레임 버퍼 개체를 공유 할 수 있습니까?
설명서에 설명되어있는 부분을 누군가가 지적하면 보너스가됩니다.
작업 샘플 코드 (죽었거나 살아있다)에 대해 누구에게나 현상금이 수여됩니다. - 또는 적어도 단계별 가이드로 FBO 공유를 설정하거나 텍스처와 렌더 버퍼를 공유하여 구현하십시오. – Suma
@Suma 질감 공유는 플랫폼에 따라 다릅니다. Windows에서는 wglShareLists()를 사용하여 glFramebufferTexture()로 FBO에 첨부 된 텍스처를 생성해야합니다. 내 이해 OpenGL 구현/버전을 직접 FBO 공유 할 수없는 경우에도 다른 컨텍스트에서이 질감을 사용할 수 있어야합니다. – Plow
그래, 이걸 이해 하긴하지만, 정확히 어떻게하면 이걸 할 수 있었는지, 내가 이미 알고있는 것에 기초하여 실험 할 때, 지금까지는 제대로 할 수 없었던 완전한 예제를 찾을 수 없었다. 인터넷 검색에서 이와 비슷한 질문이 여러 포럼에서 여러 번 묻지 만 대답은 결코 만족스럽지 않습니다. (OP와 마찬가지로 지금은 Windows에 관심이 있습니다.) – Suma