Используются ли в файлах пакета Forge Viewer SVF родительские и дочерние связанные преобразования? - PullRequest
0 голосов
/ 12 июня 2019

Контекст: Я извлекал данные геометрии из структур Forge SVF в формат OBJ , используя код Forge Extract от Petr.Затем эти данные прозрачно отправляются в другую систему рендеринга для проекта, над которым я работаю.Однако я замечаю, что в группах извлеченных объектов есть неправильные повороты.Не все объекты, только группировки.

В качестве примера приведен рендеринг Forge Viewer для группы объектов (длинные полюса) с правильным вращением.Вы можете увидеть все полюса равномерно расположенных вдоль края базовой пластины и одинаково размещены по отношению друг к другу.correct rotation

В то время как в визуализированной извлеченной геометрии группировка объектов правильно размещена относительно друг друга (в равной степени, 3x3), но группа в целом вращается немного вдольось Z относительно нижней пластины.

incorrect rotation

Это тип поведения, который я ожидал бы, если бы все полюсы были дочерними объектаминекоторый родительский объект (возможно, невидимый группирующий объект), и вращение родительского объекта повернёт все полюса в SVF, но это вращение не было применено во время извлечения геометрии.Это происходит со всеми группировками в отношении отдельных объектов в сцене.

Когда я смотрю на этот вопрос , у меня возникает сильное впечатление, что есть второй вращательный аспект, но я не вижу, как это применимо при непосредственном чтении SVF.


Вопрос: Очевидно, я не ищу решение с прямым кодом, а хочу подтвердить структуру файлов пакета SVF.Глядя на извлечение , я не вижу ничего, что подразумевало бы группировку родитель-потомок, но не сумело придумать альтернативную причину.

Итак, существуют ли такие отношения преобразования родитель-потомок в файлах пакета SVF или глобальный компонент вращения, который применяется только к определенным объектам?Если так, где это находится в файле пакета.А если нет, то что еще может вызвать такой тип систематического ротации групп?

1 Ответ

0 голосов
/ 12 июня 2019

Формат файла SVF не использует родительско-дочерние преобразования - все преобразования фрагментов в основном являются преобразованиями мира. Возможно, мой код для анализа фрагмента преобразования обрабатывает один из типов преобразования неправильно. Я попытался бы отладить метод getTransform для dbId базы или одного из полюсов и сравнить преобразование с преобразованием, проанализированным Forge Viewer.

Кроме того, мне интересно, немного ли смещено основание, а не полюса 3х3?

...