Unity3D-光照系统

光照系统

1. Global Illumination(全局光照)

  1. GI,能够计算直接光,间接光,环境光以及反射光的光照系统。通过GI算法,渲染出光照效果更为真实的场景。

2. 直接光

  1. 从光源直接放出的光,通过Light组件实现。

  2. Type类型:
    Directional Light(平行光):平行发射光线,可以照射场景里所有物体,和位置无关,模拟太阳;
    Point Light(点光源):向四周发射,可以照射其范围里所有对象,模拟灯泡;
    Spot Light(聚光灯):在灯光位置向 圆锥区域发射光线,只在这个局域的物体才会受到光照,模拟探照灯;
    Area Light( 区域光):由一个面向一个方向发射光线,只有照射该区域内的物体,仅烘焙是有效,用在光线较为集中的区域。
    在这里插入图片描述

  3. Color:设置光的颜色,可以用于警报等;

  4. Culling Mask:可以设置光照射哪些物体,打勾的可以照射到。
    为某物体添加层layer,并选中,设置摄像机的Culling Mask的该层取消打勾,则该物体不受光照射;

  5. 阴影类型:
    硬阴影
    在这里插入图片描述
    软阴影
    在这里插入图片描述
    双面:对于一个当面的Plane平面,背面不可见,不会产生阴影,设置为双面这可以产生阴影;

  6. 设置单个物体的阴影:选中这个物体,在属性设置中,可以设置其是否有阴影和接收阴影。
    在这里插入图片描述

  7. 剔除远处的阴影,通过编辑–>Project Settings打开如下界面
    在这里插入图片描述
    可以通过设置质量的高低,设置场景效果,在其中的Shadows中可以设置,影子的剔除的距离等。
    3. 点光源介绍

    1. 在其球体范围内,可以照射;
      在这里插入图片描述
      3. 聚光灯光源介绍

      1.在其锥体范围内可照射,如手电筒,探照灯。
      在这里插入图片描述

3. 环境光

  1. 作用于场景内所有物体的关照,通过Environment Lighting 中的Ambient控制。
  2. Ambient Source 环境光源
    – Skybox 通过天空盒设置
    – Gradient 梯度颜色
    Sky天空颜色、Equator地平线颜色、Ground地面颜色
    – Ambient Color 纯色
    在这里插入图片描述

4. 反射光
在这里插入图片描述

5. 间接光

  1. .物体表面反射出来的光。
  2. 通过Light组件中的Bounce Intensity反弹强度控制。
  3. 可以通过Scene面板Irradiance模式查看间接光照。
  4. 只有标记Lightmaping Static 的物体才能产生间接反弹光照。
    在这里插入图片描述
    需要将不动的物体标记为静态的,即Lightmaping Static前打勾。
  5. 通过设置Scene为Emissive,即可查看间接光(能看见物体)。
    在这里插入图片描述
    在这里插入图片描述
    结果如下(设置为静态的可见):
    在这里插入图片描述

5.Realtime GI(实时GI)

  1. 所谓“实时”是指在运行期间任意的修改光源,而所有的变化可以实时更新。

  2. 操作步骤:
    –游戏对象设置为Lightmaping Static;
    – 启用Light 面板下的Precomputed Realtime GI
    – 点击Build(如果勾选Auto编辑器会自动检测场景的改动修复光照效果)。

    在Preferences下可以设置GI缓存目录,unity会自动进行预计算。在这里插入图片描述
    –Realtime Resolution :实时计算分辨率
    – CPU Usage :CPU使用率,值越大渲染越高。

6.烘焙 GI

  • 烘焙Lightmap
    当场景包含大量物体,实时光照和阴影对游戏性能影响很大,使用烘焙技术,可以将光线效果渲染成贴图再作用到物体上模拟光影,提高性能。
  • 步骤:
    a.把不动的物体标记为静态。
    b. 设置模式为Baked
    在这里插入图片描述
  • 模式:
    Realtime:仅实时光照是起作用
    baked:仅烘焙模式起作用
    Mixed:烘焙与实时光照都起作用
    通过设置Scene为Baked Lightmap Culling可以查看烘焙贴图;

禁用光照后,贴图如下
在这里插入图片描述
通过设置Scene为Baked Lightmap Culling可以查看烘焙贴图;
在这里插入图片描述
结果:
在这里插入图片描述
也可以通过如下地方来查看实时GI和烘焙的贴图(Realtime LightMaps和Baked Lightmaps)。
在这里插入图片描述

7.光源侦测 Light Probes

  • 由于LightMapping只能作用与静态(Static)的物体,导致运动的物体与场景中的光线无法融合,显得不真实,可以添加一个Probe收集光影信息,然后对运动物体邻近的几个Probe进行插值,然后将光线作用到物体上。

  • 步骤(非静态物体):

    – 创建游戏对象 Light Probe Group
    – 添加侦测小球(小球数量要适量,可以人为添加)
    – 点击Bulid(或Auto自动修改光照效果)
    – 勾选需要侦测物体的Mesh Renderer 组件中的 Use Light Probes属性(我的为选择Blend Probes)。
    在这里插入图片描述
    小球布局位置,一般要包含需要侦测的物体。
    在这里插入图片描述
    如下图,小球为cube收集光影信息,通过黄色线上的小球来捕获光影信息,然后计算物体的光照信息。
    在这里插入图片描述
    附:
    本文章学习至bilibili-没有文明的文明-史上最全Unity3D教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomaso A.Poggio教授丨人工智能的下一个突破点在何处?

来源:图灵人工智能AI的成功故事在过去的25年中,尤其是在刚刚过去的十年中,AI,特别是机器学习,已经拥有了十足可观的进展。两个主要的成功故事第一个是AlphaGo。在虚拟的游戏世界中,AI绝对已经战胜了人类。A…

Unity3D-声音系统

声音 1.Unity3D支持的音频文件 mp3、ogg、wav、aif、mod、it、s3m、xm。 2.声音分为2D,3D两种 3D声音:有空间感,近大远小;2D声音:适合做背景音乐。 3.在场景中产生声音,主要有两个总要的组件: Audio …

当可解释人工智能遇上知识图谱

来源:知乎—机器学习小谈地址:https://zhuanlan.zhihu.com/p/386458680本文按照以下章节进行组织:1. 背景意义2. 基于路径的方法3. 基于嵌入的方法4. 总结与展望01背景意义1.1 什么是可解释性?首先,什么是可解释性。由…

Unity3D-C#脚本介绍

Unity3D脚本介绍 脚本就是附加在游戏物体上用于定义游戏对象行为的指令代码。Unity支持C#高级编程语言。 1.语法结构 using 命名空间; public class 类名:Monobehaviour {void 方法名(){Debug.Log("调试信息.");print("调用…

JConsole连接远程linux服务器配置

1.在远程机的tomcat的catalina.sh中加入配置 (catalina.sh路径在tomcat/bin下面 如/usr/local/tomcat/bin) 1 if [ "$1" "start" ];then 2 JAVA_OPTS"$JAVA_OPTS -Djava.rmi.server.hostname192.168.10.98 -Dcom.sun.management.jmxremote"…

缺缺缺!IoT行业的“芯”选择是什么?

来源:北京物联网智能技术应用协会“最初,没有人在意这场灾难,直到这场灾难和每个人息息相关。”这是电影《流浪地球》的开头,预示着一场即将来临的危机。如今,这句话正在现实中应验,不过,这次遭…

Unity3D-相关函数功能

函数功能 1.每隔固定时间执行一次,时间间隔固定(0.02s),时间间隔可以修改。 适用性:适合对物体作移动,旋转等物理操作。 函数执行不受渲染影响。 private void FixedUpdate() {Debug.Log(Time.time); }设置更新频率&…

JMeter4.0以上 分布式测试报错 server failed start Listen failed on port

使用JMeter4.0做分布式测试的是否,我的电脑作为肉鸡(执行机),双击jmeter-server.bat后显示失败 Found ApacheJMeter_core.jarUsing local port: 1888Server failed to start: java.rmi.server.ExportException: Listen failed on …

Unity-基本函数用法

1.常用组件 组件作用Transform存储个处理游戏对象的位置、旋转和缩放Mesh Filter显示网格Rigidbody刚体,使物体能在物理控制下运动Collider碰撞器,和刚体一起来是游戏对象发生碰撞Renderer渲染器,使物体在屏幕上显示出来Audio Source音频源&…

AI芯片的未来之战:“霸主”英伟达真就无人能挡了吗?

来源: AI前线作者:NICOLE KOBIE译者:王强英伟达,AI 芯片市场的统治者业内有一个传说,讲的是英伟达怎样从游戏和图形硬件转向了 AI 芯片市场的统治者 — 这个故事中有猫的身影。早在 2010 年,现任英伟达首席科学家 Bill Dally 有一天正与斯坦福…

计算机网络(一)-概述(补充)

一.概述 1.新型网络 1.1 基本特点: 网络用语计算机之间的数据传送;网络能够连接不同类型的计算机;所有的网络结点都重要,大大提高了网络的生存性;计算机在进行通信时,必须有冗余的路由;网络结…

费米悖论的三十种解释 | 观点

© David B. Mattingly来源:公众号利维坦(ID:liweitan2014)文:Ella Alderson译:Rachel校对:Yord原文:medium.com/predict/30-solutions-to-the-fermi-paradox-aaabfce56280我常常在思索,我们大多数人选择相信其他星球上存在生…

计算机网络(一)-概述

一.计算机网络 (一)计算机网络概述 1. 概述 1.1 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 1.2 互联互通,自治的计算机集…

json数组格式问题

---恢复内容开始--- 使用jsonserver来模拟后台数据接口时犯了一个很低级的错误 找了很久没有发现有什么不对劲的地方,后来仔细发现原来是一个很细微的语法问题:}] 中间不能有逗号!! ---恢复内容结束---转载于:https://www.cnblog…

图灵奖得主Judea Pearl谈机器学习:不能只靠数据

来源:选自Journal of Causal Inference作者:Judea Pearl编译:机器之心编辑:Panda在当前的人工智能研究社区,以数据为中心的方法占据了绝对的主导地位,并且这类方法也确实成就非凡,为语音识别、计…

计算机网络(二)-性能指标

一、计算机网络性能指标 1.时延 1.1 指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟 延。单位是s。 数据到达路由器是,需要等待,产生排队时延,在路由器里面需要处理数据,包括检错和查找输…

axios请求本地的json文件在打包部署到子目录域名下,路径找不到

前言: 因为要同时部署两个项目,有一个是部署到域名下面的子目录下,如:https://xxx.com/siot-admin vue 项目中使用axios请求了本地项目的static文件夹下的json文件,使用npm run build 打包后,json文件请求不…

中国集成电路设计产业创新发展的认识和思考

来源:半导体行业观察 7月15日—16日,2021中国集成电路设计创新大会暨IC应用博览会在苏州召开。在本次大会高峰论坛上,中国集成电路设计创新联盟专家组组长、东南大学首席教授、南京集成电路产业服务中心(ICisC)主任、…

计算机网络(三)-体系结构

一.分层结构 1.分层的基本原则 各层之间相互独立,每层只实现一种相对独立的功能。每层之间界面自然清晰,易于理解,相互交流尽可能少。结构上可分割开,每层都采用最适合的技术来实现。保持下层对上层的独立性,上层单向…

基于SpringBoot项目的https

基于SpringBoot项目的https 在spring中配置项目运行的端口很简单。 在application.properties中 server.port: 8080 这样配置后,spring boot内嵌的tomcat服务器就是跑在8080端口启动http服务。但是如果在配置中启动https服务,用到的端口也是server.port。…