렌더링 된 뷰를 이미지로 캡처하려면 사용자 정의 osg :: Camera :: DrawCallback을 사용합니다.
언제든지보기를 캡처하려면 카메라에서 drawCallback을 설정하고 렌더링을 강제 실행하고 NULL 콜백으로 복원하십시오. 다음 코드는 사용자 정의 뷰어의 멤버 함수의 일부임을
공지 사항 (즉, 아마 그렇지 않다) :
이
osgViewer::View::getCamera()->setFinalDrawCallback(new ViewCaptureCallback(img));
osgViewer::Viewer::renderingTraversals();
osgViewer::View::getCamera()->setFinalDrawCallback(NULL);
ViewCaptureCallback 기본적> readPixels을 화상 -을 사용()는 백 버퍼에서 읽을 수 있습니다.
glReadBuffer(GL_BACK);
osg::GraphicsContext* gc = renderInfo.getState()->getGraphicsContext();
// Here you should process the backbuffer's size and format
image->readPixels(0, 0, gc->getTraits()->width, gc->getTraits()->height, pixelFormat, GL_UNSIGNED_BYTE);
는
희망이 도움