threejs添加立方体_前端图形学(三十)——从源码去看threejs中的光照模型

本文介绍了Three.js中光照模型的基本原理和法向量的概念,通过分析源码揭示内置几何图形如何处理法向量。通过实例展示了如何为自定义几何图形添加法向量以实现真实光照效果,并探讨了着色器在光照计算中的作用,为读者提供了深入理解Three.js光照的路径。

欢迎来到【畅哥聊技术】前端图形学相关技术文章,更多精彩内容持续更新中,敬请关注。

上章节回顾

  1. 熟悉了threejs中内置的几何图形的渲染原理就是通过顶点渲染
  2. 传入自定义顶点渲染自定义的几何图形

本章目标

  1. 光照的基本原理
  2. 顶点法向量的概念和应用

上一小节我们实现了一个自定义的两个三角面,如下图。

891d388d1ca9e834b2436772652fab02.png

但是,大家很容易看出来,两个三角面之间相邻的地方没有棱角的感觉,所有的都是一个颜色。如果没有辅助线,仿佛看不出来是一个3d图形。

这是什么原因呢?可能有人会说,因为我没有添加点光源,额,说对了一半。如果我们单纯的在场景中添加一个点光源,也是没有效果的。因为还缺少一个 ... 平面法向量

什么鬼....

法向量

什么是法向量?拿立方体来举例。我们知道,它有六个平面。绘制需要12个三角形,36个顶点(这时不谈顶点的复用)。

这里插一句,webgl中绘制平面的最小单位是三角形(三角面),那为什么不是矩形面呢?原因是在三维空间中,只有三个不同位置的点,才能确定一个唯一的平面。所以在原生的webgl中,gl.drawArrays(gl.Lines)来是线条绘制,gl.TRIANGLE_FAN模式来绘制填充的平面。

回到正题,立

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值