什么是灯光渲染?
没有光,我们人的眼睛就不能看到物体,分辨不出不同物体的外形与材质(物体属性)。今天我们一起聊一聊灯光的基础知识以及灯光的基本特性。
什么是灯光?
简单来说灯光就是一种能量的放射,灯光有很多种传播方式。在均一介质中,光线是沿直线传播的。
光线来自于哪里?
太阳,人造灯光,反弹光,天光,反射。
反射、折射、吸收
在了解这三个概念之前,需要简单了解可见光谱。可见光谱是人的视觉可以感受到的光谱。可见光主要的天然光源是太阳,主要的人造光源是白炽物体(比如白炽灯)。同时是连续的。可见光由七种不同颜色的光组成,红、橙、黄、绿、靛、蓝、紫。
如图左加法三原色,又称色光三原色。灯光中需要使用到的RGB概念。
反射:当光线照射在相同的物质的相同角度,发生反射。
折射:在当光线既没有反射也没有被吸收而是穿过材质。
吸收:如果物体表现出红色,表示只有红色光线被反射,而其他颜色的光则被物体吸收。如果物体是黑色的,则所有光线都被吸收。
光的特性是什么?
强度/曝光
光源的强度有多强,它释放了多少能量。光的实际强度同时也取决于光源与物体的距离。
颜色/温度
光源是有色温的,温度越高色调越冷。
大小/焦点/距离
当光源尺寸越小,阴影边缘就会越硬。光源尺寸越大,阴影边缘就会越软。但光源的能量如果不变,但它的尺寸越大,强度就会降低。同样光源的大小改变,反射的大小也会随之改变。当把光源拉远,把强度拉高,发现阴影还是很硬的。因为光源对于这个物体而言,相对大小变得很小了。
方向/形态
光的方向最终在物体上呈现出来的结果不仅取决于光源的位置,同时也取决于模型的位置和相机的位置。
背后的数学原理
在3D空间里用三个点定义一个三角形,同时加入一个摄像机。相机前面有一个像素栅格。其中每一个小方框代表渲染出来的一个像素点。计算机只需要计算射线与相机相交的射线。也就是那些进入眼睛或者摄像机的光线。其他看不见的就会被直接跳过。因为如果要计算现实世界中无限的光线是不可能的。这就是将3D空间中的物体渲染到2D光栅化图像空间中的基本概念。
技术发展到目前为止,基本的光线追踪算法并没有完全的考虑所有反射的光线,大部分只考虑了直接照明。并没有充分地考虑到间接照明。这就导致了在很多软件中间接照明除了使用全局照明(Global illumination)技术之外,是通过补光,加灯光(近似模拟)的工作方式实现的。
常见的灯光类型
平行光
不需要位置,只需要一个方向。光源方向性强,有一定的光线反弹到物体暗部,物体暗部向上的面,包括投影会带有蓝色或者紫色(受天空影响)。
点光
在场景中有一个坐标(位置)。光源呈放射状,向各个方向发射光线。距离会决定光的强度。可以看到地面中间比边缘更亮,因为它离光源更近。比如人造灯光,烛光,火焰等。光源下的投影边缘有明显虚实衰减。
面积光
是一个表面在发光的光源。包含了坐标和方向。能比点光源提供更加平滑的衰减。面光源是散射光源,光源面积越大,投射阴影越柔和。
聚光
它有一个内锥角和一个外锥角。在锥体内部的东西都会被照亮。锥体以外的东西都不被照亮。当光源离物体越近,投射阴影面积会变大。一般拿用来模拟一些人造光源。比如射灯,手电筒等。
很多时候摄影与灯光有着非常紧密的联系,学习摄影并了解对灯光渲染也是非常有帮助的。相互之间有很多概念是相通的,并可以借鉴。
本次从现实和计算机两个方面初步了解灯光的原理,把这些知识有机的组合可以为在软件中的执行在脑海中构建出一个基本框架。通过对灯光类型特性的基本了解,从而模拟出真实或者戏剧性的效果。