作者:empty 页数:257 出版社:empty |
为了计算3D对象的着色, Unity需要知道落在3D对象的光的强度、方向和颜色,LightsourceBright shadingDark shading这些属性由场景中的灯光对象提供。不同类型的灯光以不同的方式发射为它们分配的颜色;某些光可以随着与光源的距离而衰减, 并且接受的光线角度也有不同的规则。Unity提供的各种光源在灯光类型中有详细说明。Unity以多种不同的方式计算复杂的、高级的光照效果, 每种方式对应不同的场景。选择光照方案Unity中的光照可以粗略地分为 实时。和 预计算:, 并且, 两种光照可以组合使用, 以创建沉浸式的场景光照。在本节中,我们将简要概述不同技术的适用场景、相对优势,以及独特的性能因素。
实时光照默认情况下, Unity中的灯光一平行光、聚光灯和点光源一是实时的。这意味着, 它们为场景提供直接光照,并且每桢更新。如果灯光和游戏对象在场景中移动,光照将立即更新。在场景视图和游戏视图中都可以观察这种变化,注意,因为没有弹射光,所以阴影是完全黑色的。只有位于聚光灯椎体内的表面才会收到影响,实时光照是照亮场景中物体的最基本方式,可以用于照亮角色或其他可移动的几何物体,不宰的是, 在Unity中, 来自实时光的光线不会被弹射。为了使用诸如全局光照等技术, 创建更加Unity可以计算复杂的静态光照效果(使用称为全局光照或GI的技术) , 并将它们存储在一张称烘培光照贴图时,场景中静态对象上的光源效果被计算,并将计算结果写入覆盖了场景几何顶点的纹光照贴图可以包含撞击到表面的直接光和场景中其他对象或表面弹射的间接光。光照贴图可以和表面使用烘培照明时,光照贴图在游戏期间无法改变,因为被称为是「静态a的。实时灯光可以叠加在光当在游戏过程中移动灯光时,使用这种方法可以潜在地提升性能,以适配性能不佳的硬件,例如移动虽然静态光照贴图不能对场景中光照条件的变化做出响应,但是,预计算实时GI技术可以支持交互使用这种技术,可以创建具有丰富全局光照的场景,并且可以实时地响应弹射光和光照变化。一个很好的例子是昼夜系统一光源的位置和颜色随着时间变化。而使用传统的烘培光照技术是不可能实现为了在可玩帧率下实现这些效果,我们需要将一些冗长的数字解调从实时处理转移到预计算过程中。预计算把游戏过程中计算复杂光照行为的过程,转移到不重要的时间段进行处理。我们称之为“离译注:原文有错误,这里应读有一张数图,展示一个聚光灯的实时效果。逼真的场景, 我们需要使用Unity的预计算光照方案。
烘培光照贴图为光照贴图的纹理文件中。这个计算过程成为「烘培:理文件中,以产生光照效果,左图:一个简单的光贴图场疑。右图:um icy生成的光照贴图纹理, 注意是何获阴影和灯光信息的,信息结合使用,例如对象的材质着色器指定的颜色(漫反射)和浮雕(法线)。照贴图之上,但是无法改变光照贴图本身。平台。更多信息请参阅光照视图参考页和使用预计算光照,预计算的实时GI式地更新复杂场景的光照。的。15-等单的要柜示例,便用了预计算实时GI,线a处理。更多信息请参阅关照和渲染教程.利与弊
本节详细介绍Unity中创建灯光的多种不同方法。点光源点光源位于空间中的某个点,均匀地向所有方向发射光,光击中表面的方向是一条从灯光对象中心到接触点的直线。强度随着与灯光的距离而衰减,在指定范国衰减为0。光的强度与目标对象到光源的距离的平方成反比。这被称为 平方反比定律a,类似于光在真实世界中的行为。点光源可以用于模拟场景中的灯具或其他本地光源。可以使火花或爆炸以逼真的方式照亮周围的环境。本文档使用书核(Book Stark.CN) 构建-19点光源在中的效果聚光灯聚光灯类似于点光源,具有特定的位置和方位,并且逐渐衰减,不过,聚光灯被限制在一定的角度范围内,产生锥形的照明区域,椎体的中心指向灯光对象的前方(Z轴)。光的强度沿着聚光灯椎体的边缘衰减。扩大角度会增加椎体的宽度,并增加渐变的幅度(即加剧衰减),被称为半影锥a。