什么是顶点颜色

news2024/12/26 22:23:35

  在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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【性能测试】JMeter:集合点,同步定时器的应用实例!

一、集合点的定义 在性能测试过程中,为了真实模拟多个用户同时进行操作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行操作或发送请求。 通过插入集合点可以较真实模拟多个用户并发操作。 (注意:虽然通过加入集合点可…

pdf在线加密怎么做?几个好用的方法分享

PDF在线加密怎么做?在进行PDF在线加密时,您可以使用以下几种方法来确保文档的安全性,并注意以下一些加密的注意事项。 方法一:使用PDF转换加密工具 首先我们可以在电脑上打开迅捷PDF转换器工具,进入该转换工具后先在顶…

Vue系列(二)之 基础语法【上篇】

目录 一. 插值 1.1 文本 1.2 原始HTML 1.3 属性 1.4 表达式 二. 指令 2.1 v-if/v-else-if/v-else指令 2.2 v-show指令 2.3 v-for指令 2.4 下拉框/复选框 2.5 动态参数 三. 过滤器 3.1 局部过滤器基本应用 3.2 局部过滤器串行使用 3.3 局部过滤器传参 3.4 全局过…

无涯教程-JavaScript - LCM函数

描述 LCM函数返回整数的最小公倍数。最小公倍数是最小的正整数,它是所有整数参数number1,number2等的倍数。使用LCM添加具有不同分母的分数。 语法 LCM (number1, [number2] ...)争论 Argument描述Required/OptionalNumber1, number2... 您想要最小公倍数的1到255个值。 如…

【JDK 8-函数式编程】4.2 BiFunction

一、BiFunction 二、改造上节课&#xff1a;四则运算 一、BiFunction Function 只能接收一个参数&#xff0c;要传递两个参数,则用 BiFunction 两个参数&#xff1a;可以是两种不同数据类型 调用方法: R apply(T t, U u); import java.util.Objects;/*** param <T>…

无涯教程-JavaScript - GCD函数

描述 GCD函数返回两个或多个整数的最大公约数。最大公约数是将number1和number2均除而无余数的最大整数。 语法 GCD (number1, [number2] ...)争论 Argument描述Required/OptionalNumber11 to 255 values. If any value is not an integer, it is truncated.Requirednumber…

颠覆传统!老子云支持70+三维格式转换,在线即可一键处理!

老子云自研AMRT展示框架及三维格式具有广泛兼容性&#xff0c;同时还会用户提供了3D格式在线转换工具&#xff0c;支持实现70三维格式模型的快速处理和转换。 你是不是也遇到过这种情况&#xff1a;做了半天的3D模型图&#xff0c;好不容易弄好了&#xff0c;到最后插入的时候居…

win11 腾讯会议提示未检测到可用麦克风

平时都用的耳机&#xff0c;今天直接用笔记本的音频进行会议&#xff0c;发现提示&#xff1a;显示未检测到可用麦克风&#xff0c;请插入设备重试&#xff1b;很奇怪的设置了腾讯会议的音频和电脑的&#xff0c;发现电脑的显示无可用的音频输入设备&#xff0c;折腾一番&#…

PYTHON第一次

1. 输入三个整数&#xff0c;按降序输出 a int(input("请输入第一个整数&#xff1a;")) b int(input("请输入第二个整数&#xff1a;")) c int(input("请输入第三个整数&#xff1a;"))nums [a, b, c] nums.sort(reverseTrue)print("…

mysql某批量更新导致死锁

#查询当前数据库全部线程show full processlist #查询当前运行的全部事务select * from information_schema.innodb_trx#查询锁情况select * from information_schema.innodb_locks#查询锁等待情况select * from information_schema.innodb_lock_waits #查看mysql设置等待锁时长…

《golang设计模式》第二部分·结构型模式-06-享元模式(Flyweight)

文章目录 1. 概述1.1角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图示例 1. 概述 享元&#xff08;Flyweight&#xff09;模式采用共享方式向客户端提供数量庞大的细粒度对象。 所谓细粒度对象&#xff0c;是指实现了业务细节并相互独立的对象。细粒度对象是一种相对概念&…

2023年中秋·国庆节放假通知

放假期间如有业务、技术及其他相关需求&#xff0c;欢迎新老客户前来咨询&#xff01;放假期间如给您带来不便敬请谅解! 注意事项 1、放假离开公司前须全面清扫所属办公区域的卫生&#xff0c;收拾好桌面、保管好个人办公物品&#xff1b; 2、关闭个人电脑等办公设备的电源&a…

MySQL DDL操作触发Metadata Lock等待,怎么办?5个高效应对策略解析!

大家好&#xff0c;我是小米&#xff0c;一个热衷于技术分享的程序员。上周三&#xff0c;有一位童鞋在 QQ 群里向我请教了一个关于“alter table 触发metadata lock一直等待”的问题&#xff0c;在今天的文章中&#xff0c;我将与大家分享一些关于MySQL数据库DDL操作中触发Met…

再获认可丨聚焦云计算标准和应用大会,畅谈边缘AI的探索实践

2023年9月13日&#xff0c;中国电子技术标准化研究院主办的第十二届云计算标准和应用大会在北京成功召开。本次大会以“标准筑基 数智创新 云端赋能 合作共赢”为主题&#xff0c;汇聚政产学研用各方专家学者&#xff0c;共享和探讨云计算标准化工作的重要进展以及云计算产业发…

实现可观测性平台的技术要点是什么?

文章目录 实现可观测性平台的技术要点是什么?兼容全域信号量所谓全域信号量有哪些&#xff1f;统一采集和上传工具统一的存储后台自由探索和综合使用数据总结 实现可观测性平台的技术要点是什么? 随着可观测性理念的深入人心&#xff0c;可观测性平台已经开始进入了落地阶段…

RecyclerView滑动时添加缩放效果

最近看到一个动画效果&#xff0c;感觉不错&#xff0c;所以动手试一试 我实现的效果 基本上是已经实现了头像无限滚动中itemview也伴随缩放效果 初步实现基本思路&#xff1a; 1、没选择用ViewPager&#xff0c;考虑到特定几张图片的循环显示和扩展我使用recyclerview 2、头…

lv5 嵌入式开发-2 exec函数族

目录 1 进程 – exec函数族 1.1 exec函数族特点 1.2 进程 – execl / execlp使用方法 1.3 进程 – execv / execvp 2 进程 – system 3 exec族要点演示 掌握&#xff1a;exec函数族、system 1 进程 – exec函数族 执行程序&#xff0c;通孔ps -elf发现&#xff0c;父进…

springcloud3 分布式事务-产生原因的模拟1

一 分布式事务 1.1 分布式事务产生条件 分布式事务&#xff0c;就是指不是在单个服务或单个数据库架构下&#xff0c;产生的事务&#xff0c;例如&#xff1a; 1.跨数据源的分布式事务 2.跨服务的分布式事务 3.综合情况 二 案例操作 2.1 原理架构 订单的创建、库存的扣…

1万多关数独逻辑游戏ACCESS\EXCEL数据库

数独盘面是个九宫&#xff0c;每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件&#xff0c;利用逻辑和推理&#xff0c;在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次&#xff0c;所以又称“九宫格”。 每一关存储了8…

【树】B树与B+树

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…