Я рисую трехмерную сетку человеческого лица.Данные можно найти в https://github.com/Patricklv/Smoothing-3D-surface,, где vb.xlsx содержит вершины, а it.xlsx содержит грани.
Мой код R выглядит следующим образом:
library(xlsx)
library(rgl)
vb <- read.xlsx("C:\\Users\\<Username>\\Desktop\\vb.xlsx", sheetIndex = 1, header = F)
it <- read.xlsx("C:\\Users\\<Username>\\Desktop\\it.xlsx", sheetIndex = 1, header = F)
vb_mat <- t(as.matrix(vb))
vb_mat <- rbind(vb_mat, 1)
rownames(vb_mat) <- c("xpts", "ypts", "zpts", "")
it_mat <- t(as.matrix(it))
rownames(it_mat) <- NULL
vertices <- c(vb_mat)
indices <- c(it_mat)
try <- tmesh3d(vertices = vertices, indices = indices, homogeneous = TRUE, material = NULL, normals = NULL, texcoords = NULL)
shade3d(try, ambient = "darkgrey", specular = "white")
Результирующая трехмерная поверхностьвыглядит следующим образом:
На сетке трехмерной поверхности можно легко увидеть множество треугольников.Я хочу, чтобы эта сетка surace выглядела более гладкой, как показано ниже: ![enter image description here](https://i.stack.imgur.com/1A8EI.jpg)
Что я должен сделать в R, чтобы сгладить поверхностную сетку так, чтобы сетка выглядела каквторой, где сглаживаются видимые треугольные грани?Возможно, модель Фонга для затенения будет работать через функцию contour3d в пакете misc3d.Может кто-нибудь показать, как эта функция может быть применена к моим данным?
Я заметил, что у плоттерного пакета в R есть несколько довольно удобных способов создания поверхностной сетки:
library(plotly)
face <- plot_ly(
x = vb[,1], y = vb[,2], z = vb[,3],
type = "mesh3d"
)
face
Результирующая лицевая поверхностьсетка, как показано ниже: ![enter image description here](https://i.stack.imgur.com/wsnGs.jpg)
Поверхность сетки очень гладкая!Но я не могу контролировать ориентацию объекта plotly.js при его сохранении.Я также не мог сохранить его в формате PDF без дополнительных покупок.Я хотел бы знать, насколько точно волшебство создало эту сетку с гладкой поверхностью, даже когда я не предоставлял информацию о лице (это информация не предоставлена, только vb предоставлена)?Если волшебство, выполненное с помощью plotly, может быть выполнено другим способом в R, чтобы я мог настроить ориентацию при сохранении изображений и сохранить его в виде файла PDF без покупки, сохраняя при этом такой высокий уровень плавности?