Unity3D的LightProbe用法

之前曾经介绍过Unity3D的LightMapping烘焙的用法。单独使用的LightMapping效果很好,但由于只是把光影烘焙到贴图上面,所以并不会对周围的动态物体产生真正的光照效果。这次来介绍一下LightProbe,这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果。更多内容请访问狗刨学习网http://www.gopedu.com

接下来说一下具体的用法:

首先在场景里面随意的放了一些物体,搭建了一个场景,里面有一盏直射灯,两盏不同颜色的点光源,然后有一个球,球是作为动态物体的存在。

由于打了灯光,所以球明显的受到了两盏灯光的影响而表现出两种颜色。

接下来设置一下LightMapping的选项,然后烘焙

烘焙之后的效果是这样的,由于三盏灯还开着,所以球还是受到光的颜色的影响。

接下来我们把三盏灯都关掉,这时候球就没有任何灯光效果,变成灰黑色

移动一下球,明显的不和场景里面的任何灯光产生影响

接下来我们要开始做LightProbe了。先建一个空物体

然后给这个空物体添加Light
Probe Group组件

在LightProbe选项里面,有添加、选择、删除和复制探头的按钮我们可以点击添加,放一些探头在场景里面,也可以建一个,然后复制多几个

最简单的,先在各个角落放一个,包一定范围内的场景包起来。只要你选择了LightProbe物体,那么这些探头点你就可见,然后你就可以直接用鼠标点选这些探头,然后使用位移工具来移动他们。

在烘焙之前,记得把这个LightProbe物体改成Lightmap静态物体

烘焙之前记得把三盏灯开启,烘焙完成之后,选择球,然后在网格渲染里面把Use Light Probes勾上

烘焙后就可以把三盏灯关闭了,这时候,我们看到球不再是灰黑色的了,而是受到了一定的灯光的影响

把球移动到另外一边,发现球的颜色稍微有点变化了,这就是受到了LightProbe影响了。

但上面的效果不明显,我们继续的在两盏点光源的附近加多一点探头

再次烘焙之后,我们可以看到,现在的球受到LightProbe的影响的效果就很明显了。

其实就是这么简单,LightProbe的用法就是在LightMapping的基础上加上了一些探头的点来记录光源的信息。探头越多,效果就越明显。各位如果有兴趣,可以深入的研究一下,探头怎样分布,效果才是最好的。

时间: 2024-10-03 11:58:18

Unity3D的LightProbe用法的相关文章

【转】Unity3D的LightProbe动态光探头用法介绍

原创至上,移步请戳:Unity3D的LightProbe动态光探头用法介绍 之前曾经介绍过Unity3D的LightMapping烘焙的用法.单独使用的LightMapping效果很好,但由于只是把光影烘焙到贴图上面,所以并不会对周围的动态物体产生真正的光照效果.这次来介绍一下LightProbe,这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果. 接下来说一下具体的用法: 首先在场景里面随意的放了一些物体,搭建了一个场景,里面有一盏直射灯,两盏不同

Unity3d中SendMessage 用法简单笔记

Unity3d中SendMessage 用法简单笔记 Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,SendMessageOptions)  //自

Unity3d中SendMessage 用法

Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,SendMessageOptions)  //自身和父Object的Script用于向某个GameOb

Unity3D存储PlayerPrefs 用法

using UnityEngine; using System.Xml.Serialization; using System.IO; public class StateStorage{ public static T LoadData( string key ){ if ( PlayerPrefs.HasKey( key ) ) { XmlSerializer serializer = new XmlSerializer( typeof( T ) ); StringReader sr = n

unity3D游戏开发之iTween介绍和用法

unity3D游戏开发之iTween介绍和用法 一.iTween 介绍 iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出.让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等 二.iTween 原理 iTween的核心是数值插值,简单说就是给iTween两个数值(开始值,结束值),它会自动生成一些中间值. 三.iTween 下载:  从官网http://itween.pixelplacement.com下载 主要文件有两个iTween.cs

Unity3D教程:c#脚本yield的用法

Coroutines & Yield是Unity3D编程中重要的概念,它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行,但是在Javascript与C#中实现Coroutines & Yield,在语法上却有一些区别: javascript中yield用法很简单,直接yield就行了,或者yield WaitForSeconds (2); c#中的用法如下: yield不可单独使用 需要与return配合使用,例如: 1 yield return 0; //等0帧 2

Unity3d 4.0新动画系统Mecanim用法(二)

上一篇,我们初步了解了一下Mecanim的部分很基础的类容,我以一个疑问的形式结尾.这次我来揭晓此问题的答案,其实很简单,上次的警告如下: 4.0新动画系统Mecanim用法(二)"> 警告的大概意思是:用在Animator Controller中的Animation clips需要有在检视面板中被设置了Muscle(肌肉)的这个步骤. 我的英文很烂,但我可以知道这句话的含义,就是我们的用到的这个Animation Clip必须是已经产生了Avatar的模型中的Animation Clip

Unity3d的Sprite Packer用法介绍

我们用来做sprite 的图片,通常会留有很多空白的地方,我们在画完了sprite之后,这些地方很可能就没有什么作用了.如果想避免这些资源上的浪费,我们可以把各个sprite做成图集,把图片上的空间尽量利用得充实一点.这时候,我们就需要一个制作图集的工具. 1.  首先,Unity默认是在编辑器环境下不打开图集打包工具的,只有在Build的时候才会执行自动打包图集.Edit – Project Setting – Editor. 既然这个功能是这样自动化,那为什么一开始是禁用状态,需要我们手动去

【转载】Unity3D研究院之共享材质的巧妙用法(sharedMaterial效率问题)

如果你需要修改模型材质的颜色,或者是修改材质Shader的一些属性, 通常情况是用获取模型的Renderer组件,然后获取它的material属性. 举个简单的例子,修改颜色或者直接更换shader material.color = Color.red;material.shader = Resources.Load(“Shader/Alpha-Diffuse”, typeof(Shader)) as Shader; Render可以使用material或者是sharedMaterial两个属性