我正在读取程序的.OBJ文件,并对它们进行曲率计算。现在的.OBJ文件是三角网格,带有顶点和面。他们没有任何关联的.mtl文件。根据曲率,我必须为每个顶点分配颜色,并且所有顶点都不同。我想立即显示.OBJ文件,但是我希望根据分配给它们的颜色对顶点进行颜色。显示此类文件的最佳方法是什么?
最初,我想到编写自己的.mtl文件并修改我的输入.obj文件。但是,由于顶点的数量为〜50000,每个顶点的颜色都有自己的颜色,指定一个带有〜50000材料的.mtl文件似乎确实很艰巨。
我在某个地方阅读了。
事先感谢您的任何帮助。在可视化方面,我是新手。
我相信,以ply文件格式保存网格要容易得多,您将获得一个包含所有内容的文件:三角形,顶点和颜色。
为此,必须在
之后在ply文件标头中指定element vertex _numVertices_
property float x
property float y
property float z
3 RGB顶点颜色的其他属性:
property uchar red
property uchar green
property uchar blue
其中 uchar
表示每个颜色组件的一个未符号字符。
然后在ply的主体中,每个顶点将由3 float
顶点坐标和3 uchar
s表示,用于顶点RGB颜色。
实施之一是在Meshlib中,请参见
/// saves in .ply file
MRMESH_API tl::expected<void, std::string> toPly( const Mesh& mesh, const std::filesystem::path& file, const Vector<Color, VertId>* colors = nullptr,
ProgressCallback callback = {} );
MRMESH_API tl::expected<void, std::string> toPly( const Mesh & mesh, std::ostream & out, const Vector<Color, VertId>* colors = nullptr,
ProgressCallback callback = {} );