实例教程 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

相关文章

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

SpringBoot操作MaxComputer方式(保姆级教程)

《SpringBoot操作MaxComputer方式(保姆级教程)》:本文主要介绍SpringBoot操作MaxComputer方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录引言uqNqjoe一、引入依赖二、配置文件 application.properties(信息用自己

Tomcat的下载安装与使用教程

《Tomcat的下载安装与使用教程》本文介绍了Tomcat的下载、安装和使用方法,包括在本机和云服务器上部署Tomcat的过程,以及解决启动失败问题的方法... 目录Tomcat的下载安装与使用Tomcat的下载与安装Tomcat在本机运行使用Tomcat在php云服务器上的使用总结Tomcat的下载安装与

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx