babylon灯光 概述

令狐冲 LV9
2023-05-31 · 65 阅读
babylon灯光 概述
现实世界的光源概述:

世界路过没有光,那么将是一片漆黑。试想一下一位美女,穿着非常漂亮的红色连衣裙站在你的面前,如果是白天,那么,你能清晰的看到她的红色的魅影,这是因为有光。如果伸手不见五指的夜晚,你可能只能看到一片漆黑,她的衣服再漂亮,对你来说,也是一片黑色,因为没有光。

现实世界中的物体被光线照射时,会吸收一部分光,反射一部分光。
当反射的光进入人的眼睛中时,人们便可以看到物体,并识别出它的颜色。
比如,蓝色的星空顶会反射蓝色的光,当蓝色的光进入人的眼睛中时,人们才能看到蓝色的星空顶。
光会对物体产生以下影响:
· 影响物体表面不同位置的明暗程度
· 影响物体的颜色
· 影响物体的投影
物体的明暗差异,可以让我们感觉这个物体是立体的。
比如下图中,左侧的立方体没有明暗差异,给人的感觉就是一个平面;右侧的立方体具有明暗差异,给人的感觉是立体的。
以前,我在学素描的时候,老师就在反复的强调“三大面”、“五调子”。
三大面、五调子就是在描述光对物体的明暗影响,这两个概念可以让我们画出的东西更有体感。
· 三大面:黑、白、灰三个面,描述的就是物体的明暗差异。
· 五调子:高光、中间调、明暗交界线、反光和投影。
物体的颜色会受光色的影响,这个我们之后会详说。
物体的影子就是光源看不见的地方,我们之后会通过算法来计算。
接下来,我们再认识一下光源。
2-光源
光源,就是光的源头。
基于光源发出的光线的方向,我们可以将光源分成两种:
· 平行光(directional light):光线相互平行,射向同一方向。比如从窗外摄入房间的阳光就是平行的。
注:虽让太阳的光也是向四周发射的,但太阳相对于房间而言太大,光线夹角可以忽略不计,所以就认为从窗外射入室内的阳光是平行的。
· 点光源(point light):光线从一点向周围放射。比如房间里的的灯泡就是点光源。
若对光源的照射范围做限制,还可以衍生出一些更加具体的光源,比如筒灯、聚光灯等。
现实世界中还有一种间接光源,叫环境光(ambient light),它是经过物体反射后的光。
当光源射出的光线打到物体上时,物体反射的光便是我们识别物体的关键。
接下来,我们再认识一下物体反射的光。
3-反射光
反射光:当光源射出的光线打到物体上时,物体反射的光。
物体的反射光是有方向和颜色的,其方向和颜色会受入射光和物体表面的影响。
物体常见的的反射光:
· 漫反射( diffuse reflection): 物体在接收到直接光源的入射光后,会将光线均匀的反射向四面八方,如下图:
· 镜面反射(specular reflection): 物体在接收到直接光源的入射光后,会将光线以与物体表面的法线对称的方向反射出去。
物体表面越光滑,镜面反射就越明显。
· 环境反射(enviroment ambient reflection):物体对环境光的反射。
三维数字世界的光源

3D世界中也是一样的,必须要有光。下面这幅图就是一个漂亮的球体与多个光源的效果:


图中的小点是我们绘制的光源,实际Babylon.js中光源是看不到的。

光源的几种类型
在现实生活中我们会常见一些光源,同样,数字世界的光源也是模拟现实世界的光源,这些光源和现实世界中的光源属性相近,本章大家将学习4种Babylon.js中的光源(灯光):
l 点光源(BABYLON.PointLight)
l 方向光(BABYLON.DirectionalLight)
l 聚光灯(BABYLON.SpotLight)
l 球形光(BABYLON.HemisphericLight)

接下来会逐个讲解


版块:
web3.0前端学院
分类:
1. 本站所有资源来源于用户上传和网络,仅作为演示数据,如有侵权请邮件联系站长!
2. 盗版,破解有损他人权益和违法作为,请各位站长支持正版!
回复

举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则