写点什么

什么是顶点颜色

作者:3D建模设计
  • 2023-09-18
    湖北
  • 本文字数:1471 字

    阅读完需:约 5 分钟

什么是顶点颜色

  在 3D 模型的渲染中,除了贴图属性外,顶点颜色也是一种常见的材质属性。顶点颜色是指通过给模型的顶点分配颜色值来定义模型表面的颜色。

  顶点颜色通常以顶点数据的形式储存,并且与每个顶点的位置信息相对应。在渲染过程中,顶点颜色会根据其在三角形内的位置插值,从而确定整个三角形内各个点的颜色。

  顶点颜色是介于 0 和 1(或 0 和 255)之间的值,可以添加到网格的顶点。大多数工具和引擎都支持,包括 FBX 文件格式。我相信 OBJ 不支持顶点颜色。从技术上讲,您可以拥有这些值的“无限”数量。但通常的做法是将其限制为 RGBA 值,因此每个顶点 4 个值。因此,我们称之为顶点颜色。

  让我们以立方体为例。它有 8 个顶点。每个顶点都有一个数字,当你只是建模时你看不到这个数字,但它确实需要这个数字,以便 3D 世界和文件格式知道什么顶点在哪里以及所有东西是如何连接的。每个顶点编号都会添加一定数量的值,即 RGBA。然后,我们可以使用我们的 3D 工具调整这些值。见下图。

  • 左侧立方体没有顶点颜色数据,灰色也是如此(Modo 中的默认表示形式)。

  • 中间立方体确实有顶点颜色数据,但它全是黑色的。所以所有顶点上的 0,0,0,0。

  • 右边的立方体也是全黑的。除了角落里的那个,是红色的。所以 1,0,0,0。

2. 顶点颜色的应用

  您经常会看到这种遮罩方法与树叶和树木着色器一起使用。其中红色通道控制整棵树的风摇曳效果。蓝色通道控制树枝的摇摆效果。绿色通道控制着树叶的颤动。但是,顶点颜色也用于地板和墙壁的纹理混合,在着色器中创建着色渐变控件,VFX 着色器效果,创建廉价的 AO 替代品等。

  为了正确使用着色器的顶点着色,通常需要一些方便的工具。每个 3D 软件工具都有不同的方法,因此您必须了解它们如何适用于您选择的 3D 工具。您将希望能够执行以下操作:

  • 用一种也适用于通道遮罩的颜色填充整个对象。好让它全黑。

  • 线性渐变,也适用于通道遮罩。与上面的树示例一样,通道红色。

  • 带通道遮罩的球形或圆柱形渐变。就像上面的树示例一样,通道绿色。

  • 使用也支持通道遮罩的画笔进行常规绘画。

  • 能够调整单个顶点上的值或对所选顶点进行分组。在您需要确切数字的时刻。

  GLTF编辑器 是一款集在线查看、材质修改、模型尺寸修改、模型材质属性修改、重置原点、模型合批等功能的在线 GLTF 模型编辑工具,可以通过模型材质属性修改来设置模型顶点颜色。

  在GLTF编辑器中,是通过通道遮罩的颜色填充整个对象的方式来设置模型颜色,顶点颜色设置的效果就是让模型全黑。如下图所示:

3、顶点颜色优缺点

使用顶点颜色作为材质属性还有有几个优势:

  1. 运行效率高:相比于贴图属性,在渲染过程中使用顶点颜色可以节省内存和计算资源。因为不需要加载和解析额外的贴图文件,同时也不需要进行贴图坐标的映射计算。

  2. 灵活性强:使用顶点颜色作为材质属性可以直接控制每个顶点的颜色,使得我们能够绘制更加精确和细致的颜色变化。这对于特定的绘制需求或者动态着色效果非常有用。

  3. 实时渲染支持好:顶点颜色的使用对于实时渲染引擎来说十分理想,因为它能够以较高的效率和实时性呈现模型。

  顶点颜色通常通过将红、绿、蓝和透明度(可选)数值分别分配给每个顶点来定义。这些数值可以表示 RGB 颜色空间中的各种颜色。例如,顶点颜色(1, 0, 0)表示纯红色,(0, 1, 0)表示纯绿色,(0, 0, 1)表示纯蓝色。

  要创建顶点颜色,需要为每个顶点指定相应的颜色值。在渲染过程中,引擎会基于顶点之间的插值自动计算并渲染其他颜色值。

  总体而言,顶点颜色是一种灵活且高效的材质属性,可以用于实现各种实时渲染效果,并提供更好的性能和控制力。


原文链接:什么是顶点颜色 (mvrlink.com)

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2023-04-14 加入

还未添加个人简介

评论

发布
暂无评论
什么是顶点颜色_GLTF_3D建模设计_InfoQ写作社区