От POV-Ray до RGL
Я следовал этому руководству, чтобы экспортировать графику POV-Ray в STL
файл, через мешлаб. Я также пробовал экспорт в OBJ
формат. Кажется, все отлично работает, от создания графики POV-Ray до экспорта в Meshlab.
Но потом я попытался визуализировать графику в R с помощью функций readSTL
а также readOBJ
из rgl
пакет, и проблема здесь.
На самом деле, экспортируется 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 рендеринг - просто белая сцена, ничего нет. Даже если нет лица, мы могли бы ожидать получить несколько очков.
Возможно я ошибаюсь во время одного шага процедуры. Есть ли у вас какие-либо идеи о:
как экспортировать в непустые
STL
файл в мешлаб?как получить очки с
readOBJ
в R?как получить лица в
OBJ
файл при экспорте из Meshlab?Вы знаете другой способ перейти от POV-Ray к
rgl
Можно ли сохранить цвета?
Обновить
Я нашел способ получить лица в OBJ
file: вместо того, чтобы делать реконструкцию экранированной пуассоновской поверхности в Meshlab, как сказано в tuto, я делаю реконструкцию поверхности: Ball Pivoting.
Но потом 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
1 ответ
Хорошо, я нашел.
Следуйте по ссылке, чтобы создать файл
blob.asc
в POV-RayВ Meshlab откройте этот файл и выполните " Реконструкция поверхности: шаровой поворот" в меню " Фильтры" -> "Сетка, упрощение и реконструкция". Возможно, раньше нужно было провести реконструкцию экранированной поверхности Пуассона раньше, я не знаю.
Экспортируйте файл как
STL
, Отметьте "Двоичное кодирование" (опция по умолчанию), потому чтоrgl::readSTL
читает двоичный файлSTL
только файлы, а не файлы ASCII.В R, теперь вы можете сделать
rgl::readSTL
, И это работает: