От 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, И это работает:

Другие вопросы по тегам