Lighting - 光的亮度衰减

一些零零碎碎的笔记归档;

光的亮度衰减

在物理正确的情况下,光的衰减遵循反比例平方衰减;因为光在传播过程中如下图:

随着距离的增加,单位平面上所接受的光照强度与距离的计算关系;

公式可简单表示为:

 

其中x为距离变量(相当于上图的 r),y为单位面积亮度(相当于上图的A),I为光源总亮度(即为上图的I);I = 600 时的函数图像:

x轴为离光源距离,y轴为单位面积亮度大小;其曲线形状即为单位面积亮度随距离的变化趋势;

那么在UE4中(或DCC软件)把与光源亮度变化有关的灰度变化曲线调整成类似的趋势,就可以达到接近真实的效果:

右下角模拟点光源在圆范围内的衰减;

 


 

### Unity 中与照相关的功能或设置 在 Unity 的渲染引擎中,照是一个非常重要的组成部分。通过合理配置照参数和使用不同的源类型,可以显著提升场景的真实感和视觉效果[^1]。 #### 源类型 Unity 提供了多种类型的源来满足不同需求: - **Directional Light(方向)**: 模拟太阳的效果,适用于大面积均匀照明。 - **Point Light(点源)**: 类似于灯泡发出的线,在各个方向上均匀发- **Spot Light(聚灯)**: 创建锥形区域内的集中照,类似于手电筒或舞台灯- **Area Light(区域)**: 虽然仅支持烘焙模式,但它能提供更自然柔和的阴影效果。 每种源都可以调整强度、颜色以及衰减属性等基本参数,并且可以通过混合这些源创建复杂的环境氛围。 #### 实时照 vs 烘焙照 为了平衡性能表现与画质质量之间的关系,开发者可以选择实时照或者静态烘焙方式处理模型表面反射情况: - **Realtime Lighting (实时)**: 对动态对象特别有用;但是计算成本较高可能影响帧率。 - **Baked Lighting (烘培)**: 将最终结果保存成纹理贴图应用到物体表面上从而减少运行时开销。适合不经常改变的大规模建筑结构之类的静止物件。 此外还有混合模式允许部分元素采用即时更新而其他保持固定状态以便优化资源消耗水平。 #### GI(全局照) Global Illumination 是指间接照传播过程中的相互作用现象。Unity 支持两种主要形式的GI解决方案: - **Light Probes**: 用于捕捉周围空间平均亮度信息并将其应用于非网格形状上的角色或其他移动实体之上。 - **Reflection Probes**: 反射探针则记录特定视角下的全景图像作为镜像材质的基础数据来源之一。 对于更加高级的需求来说还可以探索 HDRenderPipeline 或者 UniversalRenderPipeline 所带来的额外选项比如物理基础渲染(PBR)材料定义等等[^4]。 ```csharp // Example C# script demonstrating basic light manipulation. using UnityEngine; public class BasicLightControl : MonoBehaviour { public float intensityChangeRate; private Light myLightComponent; void Start(){ myLightComponent = GetComponent<Light>(); } void Update() { if(myLightComponent != null){ myLightComponent.intensity += Time.deltaTime * intensityChangeRate; } } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DoomGT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值