Преобразование VRML в X3D
Я работаю над веб-приложением, которое управляет файлами VRML. Я также хочу позволить пользователям видеть загруженные файлы, не требуя специального плагина или плеера. X3DOM позволяет просматривать файлы X3D без плагинов в большинстве браузеров, поэтому я хотел бы использовать его.
Увы, он работает с файлами X3D, а не с файлами VRML. Мне нужно конвертировать файлы VRML в формат X3D.
Те же люди, стоящие за X3DOM, выпустили пакет InstantReality, в котором есть утилита, которая преобразует VRML в X3D. Тем не менее, я бы предпочел не использовать внешнюю утилиту (я даже не уверен, что мне разрешено использовать ее в коммерческой среде, я не мог найти ее условия использования), но вызывал подпрограмму преобразования из кода моего приложения.,
8 ответов
MeshLab! Существует проект с открытым исходным кодом MeshLab, который выполняет все виды обработки трехмерных сеток. Он также имеет инструмент командной строки под названием MeshlabServer.
Бег meshlabserver.exe -i <wrl file> -o <x3d file>
выполняет преобразование (очень быстро). Так как это с открытым исходным кодом, у меня нет никаких проблем с лицензированием.
Ты говоришь об этом онлайн-конвертере? http://doc.instantreality.org/tools/x3d_encoding_converter/ вы, вероятно, могли бы создать сценарий для преобразования vrml в x3d/x3dom, а затем сохранить и / или отобразить
а также blender aopt и другие должны иметь возможность конвертировать vrml в x3d в командной строке. в зависимости от ваших серверов или это может быть пакетным / сценарием, а также
Я тороплюсь, чтобы сделать другую работу, но надеюсь, что это поможет.
дайте мне знать, если вам нужна дополнительная информация или примеры, и я посмотрю, что я могу сделать
Мне также нужно было конвертировать VRML .wrl в.x3d; Я старался meshlab
(meshlabserver
) но к сожалению версия у меня есть (.deb
2016.12~trusty2
в Ubuntu 14.04) сжимает все в одну сетку и в процессе теряет цвет.
Я обнаружил, что view3dscene может выполнять преобразование из командной строки, где материалы / цвета сохраняются в .x3d
как они были в .wrl
:
view3dscene mymodel.wrl --write --write-encoding xml > mymodel.x3d
поскольку view3dscene
функционирует как зритель для обоих .wrl
а также .x3d
файлы, его также можно использовать немедленно, чтобы проверить, есть ли у преобразованного (или оригинального) файла цвета или нет.
Хорошо, так что я думаю, что это полное решение для вас
1) пользователь загружает файл vrml
2) этот файл сохраняется в (файл или дБ)
3) после подтверждения того, что файл vrml был сохранен (и, возможно, проверен как правильный синтаксис vrml), он преобразуется и сохраняется в x3d (снова в виде файла или базы данных), с помощью aopt это будет выполнено с помощью aopt -i input.wrl -o output.x3d
К вашему сведению: aopt доступен для Linux и Mac
так как вы используете python, возможно, вы могли бы сделать это и с помощью blender, хотя нет полного примера vrml для x3d, эта ссылка должна помочь вам начать http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/Wavefront_OBJ
4) отобразить x3d через x3dom
Поскольку кодировка ClassicVRML X3D является прямым преемником стандарта VRML97, в большинстве случаев вы можете скопировать файл, переименовать расширение файла .wrl в расширение файла .x3dv и изменить заголовок сцены с
#VRML V2.0 utf8
в
#VRML V3.3 utf8
PROFILE Immersive
Существует много конвертеров, как коммерческих, так и с открытым исходным кодом. Полный список поддерживается на
- Ресурсы X3D: инструменты преобразования и перевода
- http://www.web3d.org/x3d/content/examples/X3dResources.html
Если вы просто хотите конвертировать XML-файлы X3D в файлы VRML Classic, вы можете использовать Titania, http://titania.create3000.de/. Откройте файл.x3d и сохраните его как.x3dv или.wrl.
Titania также поставляется с утилитой командной строки "x3dtidy", которая также может выполнять конвертацию.
Вы можете использовать этот инструмент (java jar, который можно запустить из командной строки), чтобы конвертировать VRML в X3D:
http://www.deem7.com/vrmlmerge/howto.php
java -jar VrmlMerge-[version].jar -convert inputfile.wrl [outputfile.x3d]
VrmlMerge бесплатен для некоммерческого использования. Если вы каким-то образом зарабатываете деньги на VrmlMerge, я бы хотел, чтобы вы связались со мной, чтобы согласовать некоторые условия использования. VrmlMerge предоставляется "как есть", и я не несу никакой ответственности за любой ущерб, который он может нанести вам, вашему компьютеру, файлам, данным, жене, мозгу и т. Д.
Вы можете использовать CAD Exchanger для преобразования файлов из одного в другой, например .wrl в .x3d.