open3d.geometry.TriangleMesh 类的 vertex_colors 属性是三角网格每个顶点的颜色。这个属性是一个 numpy 数组,其形状为 (n, 3),其中 n 是三角网格的顶点数量。每一行表示对应顶点的 RGB 颜色,取值范围在 [0, 1] 之间。
mesh.vertex_colors
无
numpy.ndarray:形状为 (n, 3) 的三角网格顶点颜色数组,其中 n 是顶点数量。
以下示例代码展示了如何将顶点的颜色设置为红色:
import open3d as o3d
import numpy as np
# 创建一个 三角网格,每个顶点位置将被放置在半径为1的球面上
mesh = o3d.geometry.TriangleMesh.create_sphere(radius=1.0)
# 将所有顶点的颜色设置为红色
red = np.array([1.0, 0.0, 0.0])
mesh.vertex_colors = o3d.utility.Vector3dVector(np.tile(red, (mesh.vertices.shape[0], 1)))
o3d.visualization.draw_geometries([mesh]) # 显示网格
在 mesh.paint_uniform_color() 函数执行后,vertex_colors 属性将被弃用,并被均匀颜色覆盖。因此,如果想要自定义每个顶点的颜色,应该避免使用 paint_uniform_color() 函数。