首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从POV射线到rgl

从POV射线到rgl
EN

Stack Overflow用户
提问于 2018-03-25 15:10:14
回答 1查看 454关注 0票数 1

我跟踪本教程,通过Meshlab将POV图形导出到STL文件中。我还尝试过将其导出为OBJ格式。从POV图形的创建到Meshlab的导出,一切似乎都很好。

但是,我尝试用readSTLreadOBJ函数在R中呈现rgl包的图形,问题就在这里。

实际上,导出的STL文件是空的:

代码语言:javascript
复制
solid STL generated by MeshLab
endsolid vcg

因此,当然,rgl::readSTL在R中不呈现任何内容。

OBJ文件不是空的,但它不包含任何面(只有顶点和顶点法线):

代码语言:javascript
复制
####
#
# 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
......

在R中运行rgl::readOBJ之后,渲染只是一个白色的场景,什么都没有。即使没有脸,我们也能得到一些分数。

也许我搞错了这一步。你知不知道:

  • 如何导出到Meshlab中的非空STL文件?
  • 如何在R中用readOBJ得到点?
  • 如何在从Meshlab导出时获取OBJ文件中的faces?
  • 如果可能的话,你知道从POV到rgl的另一种方法吗?

更新

我找到了一种在OBJ文件中获取人脸的方法:代替在Meshlab中进行屏蔽的Poisson曲面重建,就像在tuto中所说的,我做曲面重建:球旋转。

但是,rgl::readOBJ会生成以下错误:

代码语言:javascript
复制
Error in order(vlinks[[i]][, 2]) : argument 1 is not a vector

同样的过程允许导出一个非空的STL文件.但是,rgl::readSTL会生成以下错误:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-25 15:46:55

好吧我找到了。

  • 按照链接的tuto创建POV中的文件blob.asc
  • 在Meshlab中,打开这个文件,并进行曲面重建:在菜单中对->进行旋转,简化和重建。也许以前有一个需要做屏蔽的泊松曲面重建之前,我不知道。
  • 将文件导出为STL检查“二进制编码”(默认选项),因为rgl::readSTL只读取二进制STL文件,而不是ASCII文件。
  • 在R中,现在你可以做rgl::readSTL了。这样做是可行的:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49477327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档