2017-09-21 1 views
0

일부 노드가 다른보기에서 다르게 보이는 경우 어떤 기술을 다중보기 응용 프로그램 (CompositeViewer 사용)에서 사용해야합니까? 예를 들어 뷰의 카메라 매개 변수에 따라 일부 레이블 위치를 다시 계산해야합니까? 또는 일부 다른 종류의 주석 (테두리가있는 직사각형 영역의 텍스트)이보기 배율에 따라 표시되거나 숨겨져 있습니까?OpenSceneGraph의 다른 뷰에서 노드 모양을 다르게 만드는 방법은 무엇입니까?

답변

0

osg에는 각 카메라의 방향을 처리하는 Billboard 및 Text 클래스가 있습니다 (예 : CullVisitor가 Billboard 클래스 에 적용되는 방법 참조).

카메라에 의존하는 다른 동작을 구현하려면 올바른 콜백이 노드에 추가됩니다. 콜백은 모든 프레임에서 여러 번 (각 카메라마다 하나씩) 호출되며 필요에 따라 대응할 수 있습니다.

+0

이 콜백 콜백을 사용하여 노드를 표시하거나 숨길 수 있습니까? – Koban

+0

@Koban 그렇습니다. 예를 들어 카메라 별 제약 조건을 고려한 여러 가지 옵션이 있습니다. 예를 들어 1) 자식을 가로 지르지 않고 콜백에서 돌아오고 자식 도형이 렌더링되지 않도록 방지합니다. 2) 다른 순항 탐색을 사용합니다. 각 카메라 및 콜백의 마스크는 해당 카메라에 포함 시키거나 건너 뛰려는 노드 노드 마스크에서 일치하는 비트를 설정/해제합니다. – rickyviking

관련 문제