Three.js 几何体顶点颜色和材质颜色区别?

发布于 2021-10-19 20:59:46 字数 980 浏览 1409 评论 0

在学习 Three.js 的过程中你可能会思考 Threejs 几何体顶点颜色和材质对象的颜色有什么区别?如果你产生了这个疑问,说明你可能没有原生WebGL基础或者说你对Three.js整个系统的原理不够理解。

如果整个网格模型Mesh的颜色是单一的颜色,不是彩色渐变,直接设置材质对象Material的颜色属性.color就可以。没有必要去设置几何体的顶点颜色,如果你希望你个几何体的表面产生渐变的彩色效果,在不使用贴图的情况下,可以通过设置几何体的顶点颜色实现,比如一个温度云图。

在Three.js中几何体对象Geometry和缓冲类型几何体对象BufferGeometry本质上就是对WebGL中各种顶点数据的封装,顶点颜色数据就是顶点数据中的一种,至于Three.js中的各种点材质、线材质、网格材质、精灵材质本质上都是对顶点着色器、片元着色器、uniform变量数据的封装。

材质对象Material颜色属性.color的属性值直接影响的是原生WebGL中的片元着色器进行计算后赋值给内置变量gl_FragColor,如果是几何体中的顶点颜色数据需要先在顶点着色器中进行插值计算,然后传递给片元着色器。

设置模型的几何体顶点颜色时候,对于Geometry几何体,如果是点Points或线Line模型,可以直接设置几何体对象的.colors属性,如果是网格模型Mesh,需要通过三角形属性.faces来设置顶点颜色,Face3.colorFace3.vertexColors。对于BufferGeometry几何体而言,直接设置attributes.color属性就可以,一般加载的外部模型都是BufferGeometry几何体。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清晨说晚安

我之所以活到现在的全部意义,是为了此刻能对你说,我爱你,我会在你身后永远守护你。

0 文章
0 评论
21959 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文