如何在 Meshlab 上导入 VRML 2.0
How to import VRML 2.0 on Meshlab
我试图在 Meshlab 上导入此 VRML 文件的文件:
#VRML 2.0 utf-8
PROTO my_sphere [ exposedField SFFVec3f xyz 0 0 0 ] {
Transform {
translation IS xyz
children [
Shape {
appearance Appearance { material Material {
diffuseColor 1.0 0.05 0.05 } }
geometry Sphere { radius 0.66 }
}
]
}
}
my_sphere { xyz 0.0 0.0 0.119 } # 0
my_sphere { xyz 0.0 0.0 0.119 } # 1
我遇到错误:
Error encountered while loading file:
"/my_path/test.wrl"
File: /my_path/test.wrl
Error details: -- line 2 col 32: invalid FieldType
-- line 4 col 42: "{" expected
如何导入此类文件?我可以在 Blender 上轻松完成。
除了原始示例中的拼写错误(应该是 SFVec3f,而不是 SFFVec3f)之外,Meshlab 在 2016.12 版本中不支持基本的 Sphere 几何体。 Meshlab 确实支持使用 'returns' Shape with IndexedFaceSet 几何体的 PROTO 语句。这是一个示例 VRML97 场景生成两个四面体实例作为网格定义的形状:
#VRML 2.0 utf-8
PROTO my_tetrahedron [ exposedField SFVec3f xyz 0 0 0 ] {
Transform {
translation IS xyz
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.0 1.0 0.0
}
}
geometry IndexedFaceSet {
coordIndex [ 3 1 0 -1 3 2 1 -1 3 0 2 -1 0 1 2 -1]
coord Coordinate {
point [0.29 0.50 -0.20 0.29 -0.50 -0.20 -0.58 0.00 -0.20 0.00 0.00 0.61]
}
}
}
]
}
}
# [Scene] ========== ========== ==========
my_tetrahedron { xyz 0.0 0.0 0.0 }
my_tetrahedron { xyz -1.0 -1.0 -1.0 }
Meshlab 2016 将其导入为两个网格。
原始问题的建议解决方案:将 VMRL 场景中的球体几何体替换为由 IndexedFaceSet 定义的几何体
我试图在 Meshlab 上导入此 VRML 文件的文件:
#VRML 2.0 utf-8
PROTO my_sphere [ exposedField SFFVec3f xyz 0 0 0 ] {
Transform {
translation IS xyz
children [
Shape {
appearance Appearance { material Material {
diffuseColor 1.0 0.05 0.05 } }
geometry Sphere { radius 0.66 }
}
]
}
}
my_sphere { xyz 0.0 0.0 0.119 } # 0
my_sphere { xyz 0.0 0.0 0.119 } # 1
我遇到错误:
Error encountered while loading file:
"/my_path/test.wrl"
File: /my_path/test.wrl
Error details: -- line 2 col 32: invalid FieldType
-- line 4 col 42: "{" expected
如何导入此类文件?我可以在 Blender 上轻松完成。
除了原始示例中的拼写错误(应该是 SFVec3f,而不是 SFFVec3f)之外,Meshlab 在 2016.12 版本中不支持基本的 Sphere 几何体。 Meshlab 确实支持使用 'returns' Shape with IndexedFaceSet 几何体的 PROTO 语句。这是一个示例 VRML97 场景生成两个四面体实例作为网格定义的形状:
#VRML 2.0 utf-8
PROTO my_tetrahedron [ exposedField SFVec3f xyz 0 0 0 ] {
Transform {
translation IS xyz
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.0 1.0 0.0
}
}
geometry IndexedFaceSet {
coordIndex [ 3 1 0 -1 3 2 1 -1 3 0 2 -1 0 1 2 -1]
coord Coordinate {
point [0.29 0.50 -0.20 0.29 -0.50 -0.20 -0.58 0.00 -0.20 0.00 0.00 0.61]
}
}
}
]
}
}
# [Scene] ========== ========== ==========
my_tetrahedron { xyz 0.0 0.0 0.0 }
my_tetrahedron { xyz -1.0 -1.0 -1.0 }
Meshlab 2016 将其导入为两个网格。
原始问题的建议解决方案:将 VMRL 场景中的球体几何体替换为由 IndexedFaceSet 定义的几何体