从 POV-Ray 到 rgl
From POV-Ray to rgl
我已经按照 this tutorial 通过 Meshlab 将 POV-Ray 图形导出到 STL
文件。我也试过导出为 OBJ
格式。从创建 POV-Ray 图形到在 Meshlab 中导出,一切似乎都运行良好。
但是后来我尝试使用 rgl
包的 readSTL
和 readOBJ
函数在 R 中渲染图形,问题就在这里。
其实导出的STL
文件是空的:
solid STL generated by MeshLab
endsolid vcg
所以,当然,rgl::readSTL
在 R 中不呈现任何内容。
OBJ
文件不为空,但不包含面(仅顶点和顶点法线):
####
#
# OBJ File Generated by Meshlab
#
####
# Object blob.obj
#
# Vertices: 8437
# Faces: 0
#
####
vn -0.900372 -0.267658 -0.343060
v -4.000525 2.600000 -0.833225
......
在运行 rgl::readOBJ
之后在R中的渲染只是一个白色的场景,什么都没有。就算没有面子,我们也可以期待得到一些积分。
也许我在程序的某个步骤中弄错了。你有什么想法:
如何在 Meshlab 中导出到非空 STL
文件?
如何在 R 中用 readOBJ
得到分数?
如何在从 Meshlab 导出时获取 OBJ
文件中的面孔?
你知道从 POV-Ray 到 rgl
的另一种方法吗,如果可能保留颜色?
更新
我找到了一种在 OBJ
文件中获取面孔的方法:而不是在 Meshlab 中执行 Screened Poisson Surface Reconstruction,如教程中所述,我做 表面重建:球旋转。
但随后 rgl::readOBJ
生成此错误:
Error in order(vlinks[[i]][, 2]) : argument 1 is not a vector
相同的过程允许导出非空 STL
文件。但是随后 rgl::readSTL
生成此错误:
Error in matrix(NA, 3 * n, 3) : invalid 'nrow' value (too large or NA)
In addition: Warning message:
In matrix(NA, 3 * n, 3) : NAs introduced by coercion to integer range
好的,我找到了。
按照链接教程在 POV-Ray
中创建文件 blob.asc
在 Meshlab 中,打开此文件,然后在菜单 Filters -> Remeshing, Simplification and Reconstruction 中执行 Surface Reconstruction: Ball Pivoting 。也许以前需要做Screened Poisson Surface Reconstruction,我不知道。
将文件导出为 STL
。 检查 "Binary Encoding"(默认选项),因为 rgl::readSTL
只读取二进制 STL
文件,而不是 ASCII 文件。
在 R 中,现在您可以做到 rgl::readSTL
。这有效:
我已经按照 this tutorial 通过 Meshlab 将 POV-Ray 图形导出到 STL
文件。我也试过导出为 OBJ
格式。从创建 POV-Ray 图形到在 Meshlab 中导出,一切似乎都运行良好。
但是后来我尝试使用 rgl
包的 readSTL
和 readOBJ
函数在 R 中渲染图形,问题就在这里。
其实导出的STL
文件是空的:
solid STL generated by MeshLab
endsolid vcg
所以,当然,rgl::readSTL
在 R 中不呈现任何内容。
OBJ
文件不为空,但不包含面(仅顶点和顶点法线):
####
#
# OBJ File Generated by Meshlab
#
####
# Object blob.obj
#
# Vertices: 8437
# Faces: 0
#
####
vn -0.900372 -0.267658 -0.343060
v -4.000525 2.600000 -0.833225
......
在运行 rgl::readOBJ
之后在R中的渲染只是一个白色的场景,什么都没有。就算没有面子,我们也可以期待得到一些积分。
也许我在程序的某个步骤中弄错了。你有什么想法:
如何在 Meshlab 中导出到非空
STL
文件?如何在 R 中用
readOBJ
得到分数?如何在从 Meshlab 导出时获取
OBJ
文件中的面孔?你知道从 POV-Ray 到
rgl
的另一种方法吗,如果可能保留颜色?
更新
我找到了一种在 OBJ
文件中获取面孔的方法:而不是在 Meshlab 中执行 Screened Poisson Surface Reconstruction,如教程中所述,我做 表面重建:球旋转。
但随后 rgl::readOBJ
生成此错误:
Error in order(vlinks[[i]][, 2]) : argument 1 is not a vector
相同的过程允许导出非空 STL
文件。但是随后 rgl::readSTL
生成此错误:
Error in matrix(NA, 3 * n, 3) : invalid 'nrow' value (too large or NA)
In addition: Warning message:
In matrix(NA, 3 * n, 3) : NAs introduced by coercion to integer range
好的,我找到了。
按照链接教程在 POV-Ray
中创建文件 在 Meshlab 中,打开此文件,然后在菜单 Filters -> Remeshing, Simplification and Reconstruction 中执行 Surface Reconstruction: Ball Pivoting 。也许以前需要做Screened Poisson Surface Reconstruction,我不知道。
将文件导出为
STL
。 检查 "Binary Encoding"(默认选项),因为rgl::readSTL
只读取二进制STL
文件,而不是 ASCII 文件。在 R 中,现在您可以做到
rgl::readSTL
。这有效:
blob.asc