2014-12-30 3 views
1

drawImplementation 메서드가 호출 될 때 카메라의 눈으로부터 현재까지의 거리를 계산해야하는 사용자 정의 osg::Drawable 클래스를 작성하고 있습니다. 렌더링을위한 패싯의 최적 수를 결정하려면이 작업을 수행해야합니다.OpenSceneGraph 사용자 정의 osg :: Drawable의 실제 노드 경로 얻기

어려운 점은 드로어 블이 노드 수를 osg:Transform 개까지 가질 수 있다는 것입니다. 드로어 블에 적용되는 실제 부모의 변형을 적용해야합니다. osg::Node::getParents() 및/또는 getParentalNodePaths()을 사용하여이 드로어 블에 대한 가능한 모든 경로를 결정할 수 있지만 취해진 경로는 결정할 수 없습니다.

OpenSceneGraph에서이를 확인할 수있는 방법이 있습니까? 나는 예제와 문서를 파헤쳐 내가 필요한 것을 정확히 찾지 못했다.

답변

3

렌더링/그리기 단계가 아닌 컬 단계에서이를 수행 할 수 있습니다. 컬 뷰어에서 모델 뷰 행렬을 가져 와서 나중에이 거리를 결정할 수 있습니다. 커스텀 드로어 블 클래스에 이것을 원하기 때문에, 당신은 cullcallback을 붙임으로써 이것을 할 수 있습니다.

+0

osg-users 메일 링리스트를 조회 한 결과 실제로 drawable의 drawImplementation 내부에서 state 객체를 통해 모델 뷰 매트릭스를 얻을 수 있다는 것을 알았습니다. 이는 제안 된 콜백 콜백보다 직접적입니다. 그러나, 제안에 감사드립니다. –

+0

@raveesh Srivathsa : P – SRINI794