我正在处理管理VRML文件的Web应用程序。我还想让用户看到上传的文件,而无需特定的插件或播放器。 X3DOM允许在大多数浏览器上查看没有插件的X3D文件,所以我想使用它。
唉,它适用于X3D文件,而不适用于VRML文件。我需要将VRML文件转换为X3D格式。
X3DOM背后的同一个人发布了一个名为InstantReality的软件包,它有一个将VRML转换为X3D的实用程序。但是,我宁愿不使用外部工具(我甚至不确定我是否允许在商业环境中使用它,我无法找到其使用条款)但是从我的应用程序代码中调用转换例程。
答案 0 :(得分:8)
MeshLab!有一个名为MeshLab的开源项目,可以对3D网格进行各种处理。它还有一个名为MeshlabServer的命令行工具。
正在运行meshlabserver.exe -i <wrl file> -o <x3d file>
执行转换(非常快)。由于它是开源的,我没有任何许可问题。
答案 1 :(得分:5)
以及blender aopt和其他人应该能够在命令行上将vrml转换为x3d。根据你的服务器,这也可以批量/编写脚本
我急于完成其他工作,但希望这会有所帮助。如果您需要更多信息或示例,请告诉我并了解我能做些什么
答案 2 :(得分:2)
好吧所以我认为这是你的完整解决方案
1)用户上传vrml文件
2)该文件被保存到(文件或数据库)
3)在确认vrml文件已被保存(并且可能被验证为正确的vrml语法)后,它将被转换并保存到x3d(再次作为文件或数据库),aopt这将通过aopt -i输入完成。 wrl -o output.x3d
仅供参考:aopt适用于linux windows和mac
因为你使用python这也许你可以用blender这样做,虽然没有完整的vrml到x3d的例子这个链接应该让你开始 http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/Wavefront_OBJ#Command_Line_Converting
4)通过x3dom显示x3d
答案 3 :(得分:2)
我还需要将VRML .wrl转换为.x3d;我尝试了meshlab
(meshlabserver
),但不幸的是,我在Ubuntu 14.04上的版本(.deb
2016.12~trusty2
)将所有内容压缩为单个网格,并在此过程中丢失了颜色
我发现view3dscene可以从命令行进行转换,其中材料/颜色保存在.x3d
中,就像在.wrl
中一样:
view3dscene mymodel.wrl --write --write-encoding xml > mymodel.x3d
由于view3dscene
充当.wrl
和.x3d
文件的查看器,因此它也可以立即使用,以检查转换后的(或原始的)文件是否有颜色
答案 4 :(得分:1)
如果您只想将X3D XML编码文件转换为VRML Classic编码文件,则可以使用Titania http://titania.create3000.de/。打开.x3d文件并将其另存为.x3dv或.wrl。
Titania还附带了一个可以进行转换的命令行“x3dtidy”。
答案 5 :(得分:1)
您可以使用此工具(可以从命令行运行的Java jar)将VRML转换为X3D:
http://www.deem7.com/vrmlmerge/howto.php
java -jar VrmlMerge-[version].jar -convert inputfile.wrl [outputfile.x3d]
VrmlMerge可免费用于非商业用途。如果你以某种方式从VrmlMerge赚钱,那么我希望你联系我同意一些使用条款。 VrmlMerge“按原样”提供,我对其对您,您的计算机,文件,数据,妻子,大脑等造成的任何损害不承担任何责任。
答案 6 :(得分:1)
由于ClassicVRML X3D编码是VRML97标准的直接继承者,因此在大多数情况下,您可以复制文件,将 .wrl 文件扩展名重命名为 .x3dv 文件扩展名,并从
更改场景标题#VRML V2.0 utf8
到
#VRML V3.3 utf8
PROFILE Immersive
存在许多转换器,包括商业和开源。
维护完整列表