Получите фактический путь к узлу в OpenSceneGraph custom osg::Drawable

Я пишу обычай osg::Drawable класс, который должен рассчитать текущее расстояние от глаз камеры, когда его drawImplementation метод называется. Это нужно сделать, чтобы определить оптимальное количество граней для рендеринга.

Сложность состоит в том, что мой рисовал может иметь любое количество osg:Transform узлы как родители. Мне нужно применить преобразование фактического родителя, который применяется к drawable. С помощью osg::Node::getParents() и / или getParentalNodePaths()Я могу определить все возможные пути к этому рисунку, но не путь, который был выбран.

Есть ли способ определить это в OpenSceneGraph? Я перерыл примеры и документацию и не нашел именно то, что мне нужно.

1 ответ

Вы можете сделать это на этапе отбора, а не на этапе рендеринга / рисования. Вы можете получить матрицу вида модели у посетителя и затем определить расстояние от нее. Так как вы хотите это для своего пользовательского класса drawable, вы можете сделать это, прикрепив обратный вызов.

Другие вопросы по тегам