MATLAB Answers

how can I generate a 3d surface object from 3d vertex extracted from a blender .ply?

10 views (last 30 days)
Fabricio Castro
Fabricio Castro on 11 Apr 2018
Edited: Fabricio Castro on 11 Apr 2018
I'm looking for a way to get the 3d vertex information extracted from a blender .ply file and generate a 3d closed surface object. I tried the following code:
%Load .ply file
ptCloud = pcread('monkey.ply');
%Acess the 3D vertex coordinates
coordinates=ptCloud.Location; x=double(coordinates(:,1)); y=double(coordinates(:,2)); z=double(coordinates(:,3));
%Generate a delaunay triangulation from 3d vertex coordinates
DT = delaunayTriangulation(x,y,z);
[T,Xb] = freeBoundary(DT); TR = triangulation(T,Xb);
P = incenter(TR); F = faceNormal(TR);
trisurf(T,Xb(:,1),Xb(:,2),Xb(:,3), ... 'FaceColor','cyan','faceAlpha',0.8); axis equal hold on quiver3(P(:,1),P(:,2),P(:,3), ... F(:,1),F(:,2),F(:,3),0.5,'color','r');
The result related to the above code is represented by the attached figure (a), but the desired result would be (b).


Sign in to comment.

Answers (0)

Sign in to answer this question.