I've followed this tutorial to export a POV-Ray graphic to a STL
file, through Meshlab. I've also tried the export to the OBJ
format. Everything seems to work fine from the creation of the POV-Ray graphic to the exporting in Meshlab.
But then I've tried to render the graphic in R with the functions readSTL
and readOBJ
of the rgl
package, and the problem is here.
In fact, the exported STL
file is empty:
solid STL generated by MeshLab
endsolid vcg
So, of course, rgl::readSTL
renders nothing in R.
The OBJ
file is not empty, but it contains no faces (only vertices and vertex normals):
####
#
# 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
......
After running rgl::readOBJ
in R the rendering is just a white scene, there's nothing. Even if there's no face, we could expect to get some points.
Maybe I'm mistaken during one step of the procedure. Do you have any idea about:
how to export to a non-empty STL
file in Meshlab ?
how to get the points with readOBJ
in R ?
how to get the faces in the OBJ
file when exporting from Meshlab ?
do you know another way to go from POV-Ray to rgl
, if possible preserving the colors ?
I've found a way to get the faces in the OBJ
file: instead of doing Screened Poisson Surface Reconstruction in Meshlab, as said in the tuto, I do Surface Reconstruction: Ball Pivoting.
But then rgl::readOBJ
generates this error:
Error in order(vlinks[[i]][, 2]) : argument 1 is not a vector
The same procedure allows to export a non-empty STL
file. But then rgl::readSTL
generates this error:
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
Ok, I've found.
Follow the linked tuto to create the file blob.asc
in POV-Ray
In Meshlab, open this file, and do Surface Reconstruction: Ball Pivoting in the menu Filters -> Remeshing, Simplification and Reconstruction. Perhaps one previously needs to do Screened Poisson Surface Reconstruction before, I don't know.
Export the file as STL
. Check "Binary Encoding" (a default option), because rgl::readSTL
reads binary STL
files only, not ASCII files.
In R, now you can do rgl::readSTL
. And this works: