实例教程 Unity3D教程光影烘焙 Light probes 光探针

2023-10-25 19:40

本文主要是介绍实例教程 Unity3D教程光影烘焙 Light probes 光探针,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

烘焙出来的light map并不能作用于动态物体。如果场景里有动态物体的话,会显得与烘焙好的场景脱离。
需要两个部分的效果:
影子:
(1)使用勾选阴影的实时光。
(注意:Dual+deferred Dual+forward Single+forward都有影子
   只有Single+deferred,即使光勾选了阴影,也不会有影子。)

明暗变化:
(1)使用实时光
(2)使用Light Probes
(3)使用脚本控制
物体处于阴影区域的颜色:(1)(2)都默认是黑色,除非自己在阴影区域再加光源(3)自己写。可以实现Temple Run 2中 在阴影区域里的特殊颜色。

Light Probes

light probe仅用于烘焙。

使用Light Probes
(1)创建一个GameObject,然后Component->Rendering->light probe group。界面如下。
(2)Add probe添加probe.
(未被选中的probe为黄色,选中的probe为蓝色)
(3)在选中该物体的情况下。在scene窗口中选择probe,按ctrl+d,复制该probe.排列成一排。
(4)点击Insprector面板里的Select all 选择整排的probe.然后点击Duplicate selected或者直接按ctrl+d,然后拖拽新创建的一排probe。重复此过程,直到成一个阵列。
(5)复制整个probe阵列,并向上拖拽。如下图所示的红线就出来了,表明已经形成了一个体积(form a volume)。
(注意:如果不形成一个体积,即出现红线的话,创建的light probes是不会有任何效果的)
(6)在这个体积内随便建几个例如cube,sphere之类的简单多边形,然后把这些物体勾选static。然后创建一个directional light,并勾上soft shadow。
(7)打开light mapping界面,然后bake scene.
(8)烘焙好后,在显示light mapping界面的前提下,scene界面如下
(9)之后你可以创建任意一个Skinned Mesh Renderer的模型,或者任意模型或多边形。不勾选static,在Mesh Renderer或者Skinned Mesh Renderer里勾选 Use Light Probes。
(10)点击运行,发现随该人物或者物体移动,明暗会发生一个整体的变化,尤其是在光照区域和阴影区域间切换的过程。

总结:
创建好Light Probes后,在烘焙的过程中,light probes会记录各个probe探针点记录的光照强度信息。然后运动的物体,通常是其mesh的中心点为物体的探测点(the centre of the mesh's bounding box)会参与运算。如果该点位于Light Probes的体积内的话,则取包裹该点的最小空间,取形成该空间的light probe点(通常是4个点),根据距离进行插值,最终取得物体对应点的光照强度,并和烘焙时的光颜色共同作用于renderer。物体点所在的位置反应了插值时各点比例。

如果是物体点 位于Light probes所形成的体积外的话,则取最近的probes面,即形成该面的三个点进行插值。会有条线从物体指向该面,该线与面的交点反应了插值时三个点比例。

烘焙好后,在Lightmap Display界面里
勾选Show probes:能看见烘焙好的light probes,由于是已经烘焙好的了,即使移动Light probes group里的点也无法改变烘焙好的点。
勾选show cells:能看见烘焙好的light probes所形成的一个个空间。

 

在与场景同名的文件夹下,不仅能看见lightmap,也能看见LightProbes.asset这个文件,它就是烘焙好的light probes了。在Inspector面板下,能看见probe的数量和cell空间的数量。

 

Light Probes的优点:
(1)性能佳,对比实时阴影性能高很多,适合移动平台。
(2)配合烘焙,配合烘焙效果很好。
(3)可视化,可以可视化编辑Light Probes的分布,不需要代码。
Light Probes的缺点:
(1)烘焙后才能有效果,不能实时改变.
(2)只能整体进行明暗变化。
 

这篇关于实例教程 Unity3D教程光影烘焙 Light probes 光探针的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284787

相关文章

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3