在之前的实践场景中,一般只有一个光源且光源类型是平行光。但实际光源类型不止一种,且需要被区别对待。

光源种类

在之前的文章中多多少少地提到了Unity中支持几种不同的光源,其中包括点光源(point lights),聚光灯光源(direct lights),平行光光源(directional lights), 面光源(Area lights)以及发光物质(Emissive materials) 和 环境光(Ambient light)。

由于每种光的几何定义不同,因此它们对应的光源属性也就各不相同。因此需要区别对待。

点光源

点光源位于空间中的某个点,并且均匀地向所有方向发出光。入射到表面的光的方向是从接触点回到光源对象中心的线。强度随着与光的距离而减小,在指定范围内达到零。光强度与到光源的距离的平方成反比。这就是所谓的“平方反比定律”,类似于光在现实世界中的行为。

其在场景中效果如下:

其属性面板示例如下:

点光源的球体半径可以由属性面板上的Range来调整,也可以直接拖拽球体的线框。其位置属性由面板中Transform组件中的Position属性来定义,其他属性如光源的颜色,强度都是可以在面板中进行设置的。

聚光灯光源

与点光源相同,聚光灯光源具有特定的位置和范围,但是被限制在一个角度上,所以形成锥形照明区域。圆锥体的中心指向灯光对象的向前(Z)方向。聚光灯圆锥体的边缘处的光线也会减少。加宽角度会增加圆锥的宽度,并随之增加这种渐隐的大小,称为“半影”(penumbra)。

聚光灯通常用于人造光源,例如手电筒,汽车前灯和探照灯。通过脚本或动画控制方向,移动的聚光灯将仅照亮场景的一小部分并产生戏剧性的照明效果。

锥形照明区域的半径由Range决定,张开角度由SpotAngle决定,其属性面板示例如下:

平行光

平行光对于在场景中创建诸如日光之类的效果非常有用。像太阳一样,平行光在许多方面都可以看作是无限远地存在的遥远光源。平行光没有一个唯一的光源位置,因此可以将光源对象放置在场景中的任何位置。场景中的所有对象都被照亮。光线总是来自同一方向。光线到目标物体的距离没有定义,因此光线不会衰减,即,光照强度不会随着距离的改变而发生改变。

平行光表示来自游戏世界范围以外位置的大型的远距离光源。在逼真的场景中,它们可以用于模拟太阳或月亮。在抽象的游戏世界中,平行光是在不精确指定光源方向的情况下向物体对象添加令人信服的阴影的有用方法。

其在真实场景中的效果如下:

默认情况下,每个新的Unity场景都包含一个平行光。可以通过删除默认的“平行光”并创建新的光源。调整面板中的Rotation属性时,将灯光指向上方会导致天空变黑,就像在夜间一样。当光线从上方向下倾斜时,类似于日光。

属性面板如下:

面光源

一个面光源由空间中的矩形限定。在所有方向上均匀地在其表面区域上发出光,但仅从矩形的一侧发出。对于面光源的范围没有手动控制,但是强度会随着距离光源的距离的平方成反比而减小。由于照明计算需要大量处理器,因此面光源在运行时不可用,只能烘焙为光照贴图。

由于面光源会同时从几个不同的方向照亮对象,因此阴影比其他类型的光更柔和细微,可用于创建逼真的路灯或靠近播放器的一排灯。小面积的光源可以模拟较小的光源(例如室内照明),比点光源具有更逼真的效果。

其效果如下:

发光材料

与面光源相同,发光材料会在其表面积上发出光。它们有助于场景中的反射光,并且在游戏过程中可以更改相关的属性,例如颜色和强度。尽管预计算的实时GI不支持区域照明,但是使用发光材料仍然可以实时获得类似的柔和照明效果。

自发光是标准着色器(Standard Shader)的属性。它允许场景中的静态对象发光。默认情况下,自发光的值设置为零。这意味着使用“ 标准着色器”分配了材质的对象将不会发光。

发光材料没有范围值,但是发出的光将再次以二次速率衰减。同样,应用于非静态或动态几何图形(例如角色)的发光材料也不会有助于场景照明。但是,自发光值大于零的材质即使对场景照明没有帮助,仍会在屏幕上明亮地发光。像这样的自发光材料是创建效果(例如氖气或其他可见光源)的有用方法。

发光材质仅直接影响场景中的静态几何体。如果您需要动态或非静态的几何图形(例如角色)来从发光材料中拾取光,则必须使用“ 光探测器”(Light Probes)“。

环境光

环境光是存在于整个场景中的光,而不是来自任何特定的源对象。它可能是场景整体外观和亮度的重要因素。

根据您选择的艺术风格,环境光在许多情况下都可能有用。如果需要在不调整单个灯光的情况下增加场景的整体亮度,则环境光也很有用。

在菜单栏中的Window->Rendering->Lighting setting中可以找到环境光设置。

以上就是Unity支持的各种光源类型了,之后将会介绍在前向渲染中对不同光源的不同处理。

参考

unity球体添加光源_Unity渲染路径——光源种类相关推荐

  1. Unity Shader入门精要 | 渲染路径、光源类型和阴影

    目录 渲染路径 前向渲染 (Forward Rendering) 顶点照明渲染 (Vertex Lit Rendering) 延迟渲染 (Deferred Rendering) 光源类型 平行光 (D ...

  2. unity球体添加光源_关于Unity中的光源

    一.光源定义 光源,是一个普通节点加一个Light组件,创建的时候可以直接创建光源节点,也可以先创建一个空节点,再添加Light组件实例. 二.颜色形成 看到的物体颜色受两个很重要的因素的影响,一个是 ...

  3. 如何在unity的前向渲染路径ForwardBase中同时使用逐顶点和逐像素光源

    前言:问题来自于<Unity Shader入门精要>中,第195页.书中给出了如何在forwardbase和forwardadd中计算逐像素光照,并没有给出如何同时进行逐顶点的光照,因此当 ...

  4. Unity 性能优化:降同屏Tris、动态合批降DC、遮罩剔除、渲染路径

    前言: 元宵节快到了,想要做一个上千盏孔明灯的场景,由于不懂建模,于是在Asset Story找了一套模型,结果找的灯笼模型精细度超标,当在游戏场景中实例化出四百个孔明灯时,帧率只有十帧左右 为了使得 ...

  5. Unity 渲染路径理解

    Unity 常用的渲染路径 备注 前向渲染 标签: {"LightMode" = "ForwardBase"} 原理: 每进行一次前向渲染, 都需要渲染该对象的 ...

  6. 【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )

    文章目录 一.向 Unity 中添加 FBX 模型 二.向 Scene 场景中添加 FBX 模型 三.3D 物体渲染 四.3D 物体材质设置 一.向 Unity 中添加 FBX 模型 Unity 中使 ...

  7. Auto CAD:CAD三维建模设计之渲染工具(光源、阳光和位置、材质、渲染)之详细攻略

    Auto CAD:CAD三维建模设计之渲染工具(光源.阳光和位置.材质.渲染)之详细攻略 目录 CAD三维建模设计之渲染工具(光源.阳光和位置.材质.渲染) 光源 阳光和位置

  8. unity 烘焙参数 设置_Unity通用渲染管线(URP)系列(九)——点光源和聚光灯

    200+篇教程总入口,欢迎收藏: 放牛的星星:[教程汇总+持续更新]Unity从入门到入坟--收藏这一篇就够了​zhuanlan.zhihu.com 本文重点内容: 1.支持更多类型的灯光 2.包含实 ...

  9. Unity中的灯光和渲染

    一:Unity中的灯光 --Directional Light:模拟太阳光.它与位置无关,是平行光,可以调整旋转角度模拟昼夜 --Spot Light:模拟车灯.手电筒的光.舞台灯光 --Point ...

最新文章

  1. R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线
  2. SQLServer创建用户自定义数据库用户
  3. jenkins 自带环境变量
  4. 在正式使用计算机账务系统的银行对账功能,用友ERP-U8管理系统认证考试理论题...
  5. ireport使用参考
  6. 重构(Refactoring)技巧读书笔记 之三
  7. 单独的REST JSON API服务器和客户端? [关闭]
  8. python关闭线程池_python线程池
  9. xv6 System Call
  10. matlab手眼标定,机器人手眼标定(eye to hand和eye in hand)
  11. 软件测试简历如何扬长避短(二)
  12. mysql 词频分析_09 使用python完成词频统计
  13. html refresh原理,HTML meta refresh 刷新与跳转(重定向)页面
  14. unity与Android交互的currentActivity和入口Activity
  15. python 简单字体解密
  16. MongoDB(四)——GridFS
  17. 定制联想笔记本一键恢复内容
  18. Win10开始菜单点击没有反应打不开怎么办?
  19. BoundsChecker简易使用教程
  20. html之表格与锚点

热门文章

  1. centos安装后两个启动项、_centos8的启动项配置
  2. php对连接加密后传,PHP 加密解密和解决URL传输问题
  3. C语言访问内部ROM,C语言随笔2: rom ram 及其运行的过程
  4. mysql数据采集中间件_开源 | MySQL数据传输中间件—DTLE
  5. 居然以反战的名义,利用开源工具包“投毒”!
  6. 有些人一眼就能认出来,你认出来几个?
  7. 由Linux内核bug引起SSH登录缓慢问题的排查与解决
  8. 微服务落地,我们在考虑什么?
  9. 死磕Java并发:J.U.C之并发工具类:CyclicBarrier
  10. 图像翻译、语义分割、域适应、图像检索、无监督学习cvpr2021