携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情 >>
前言
场景是舞台,图元是角色,材质就是衣服,不同的衣服可以达到不同的效果,当然不同的材质所表现出来的效果也不尽相同
种类有哪些?
- 基础网格材质(MeshBasicMaterial) 不受光照影响,也就是说,不管相机位置如何,光源位置如何,光源种类如何,都不会响应光照的效果
- Lambert网格材质(MeshLambertMaterial) 只在顶点计算光照,这个稍后细说
- Phong网格材质(MeshPhongMaterial) 会在每个像素点计算光照,还支持镜面高光,你比如,经过高目数打磨的大理石表面,涂漆木板表面等等
- 标准网格材质(MeshStandardMaterial) 这个是基于物理的材质,他和MeshPhongMaterial的区别就是,MeshPhongMaterial其实是在模拟某个光照条件下,当前材质应当有的表现,而MeshStandardMaterial是根据物理学的各项指标,通过计算来使当前材质适配各类光源,当然效果上会更加的逼真
- 物理网格材质(MeshPhysicalMaterial) 跟MeshStandardMaterial类似,都是基于物理学计算得出的材质,不同点是MeshPhysicalMaterial还能支持Clearcoat 也就是 清漆表面的效果,就好像 比如玉质小球,表面带有天然湿气后一个点状光远远地打在小球上的那种效果,就是类似下图这样的效果
- 阴影材质(ShadowMaterial) 按下不表,后期再说(ps:不是我不想详细写,而是现在还没有涉及到阴影相关的知识,而解释清楚后很麻烦,这里mark一下,回头再来看)
- 深度网格材质(MeshDepthMaterial), 这个是基于相机深度去渲染的材质,想象一下,物体近大远小,近处的看起来亮,远处看起来黑,所以白色最近,黑色最远。
- 法线网格材质(MeshNormalMaterial) 会把法向量映射到RGB颜色的材质。
会绘制视图空间法线(相对于摄像机的法线)。x 是红色, y 是绿色, 以及 z 是蓝色,所以朝向右边的东西是粉红色,朝向左边的是水蓝色,朝上的是浅绿色,朝下的是紫色,朝向屏幕的是淡紫色。 这里不太好理解,首先,要对三维坐标系有概念,就面向屏幕为Z轴来说,X是横向的轴,左负右正,Y是纵向的轴,上正下负,Z是向人端为正,向屏幕深处为负,这样,向右=x正则是淡红+淡蓝=粉 向左则是淡绿+淡蓝=水蓝, 向上=绿+蓝=浅绿,向下=红+蓝=紫色 = =(这样算是强行解释通了吧?)
- 着色器材质(ShaderMaterial) 基于threejs提供的着色器系统自定义的材质,后面再讲
- 原始着色器材质(RawShaderMaterial) 纯纯的完全自定义的着色器进行绘制的材质,后续再说