Unity 3D中的阴影设置
在Unity 3D中,经常需要用到光照阴影,即Directional Light的Shadow,Shadow分为Hard Shadow和Soft Shadow。区别是Soft Shadow的阴影边缘比较平滑,接近真实,但是性能消耗大于Hard Shadow。
Lightmapping有3种选择:实时光照阴影(RealTimeOnly)、场景烘焙阴影(BakedOnly)、以及上面两者结合的阴影(Auto)。
RealTimeOnly:所有场景物体的光照都实时计算,实时光照对性能消耗比较大;
BakedOnly:只显示被烘焙过的场景的光照效果(如果有地方没有被烘焙过,则不会显示光照效果):场景烘焙是可以选择一些静态物体进行烘焙,这里的静态物体是指在游戏过程中不会动的物体(需要在对象的Inspector面板中勾上static),因此可以在游戏运行前就先把光照效果做好,生成光照贴图,然后游戏运行的时候直接把光照贴图显示出来就可以了,不用实时计算光照效果,用空间(贴图的存储空间)换取了时间(实时光照的计算时间)。
Auto:这种就是上述两者的结合,如果选择这个模式,那么被烘焙过的部分就用光照贴图直接显示,没有被烘焙过的地方就实时计算。
但是在使用Shadow的过程中,可能会遇到一个问题:本来以前显示的好好的,阴影突然不显示了。在Shadow里面选择了显示阴影,仍然没有效果,阴影选择Hard Shadow和Soft Shadow都不行,选择RealTime only、Bake only、Auto也都不行,这是什么原因呢?
有下面三种情况可能导致这种现象的发生,如果遇到这种问题可以试试。
情况一:距离太远了,看不到阴影,把摄像机镜头放近试试,这种情况一般会在选择实时光照(RealTimeOnly)时发生。如果还不行,那么看看第二种情况。
情况二:打开EditàProject SettingsàQuality,在Inspect面板中查看,如下图。在Levels中绿色的是发布时候会选择的模式,当前选择的是Good,可以再Unity中实时查看这个Levels下的显示情况,在Good Levels下,Unity自定义了一下Good情况下的显示效果,在图的下方:Rendering、Shadows、Other,如果选择了Fast,Shadows默认是不显示阴影的。因此遇到阴影不显示的情况,可以检查一下这个地方。不过这种情况一般也是会在实时阴影时出现。

情况三:由PC平台转到了Android平台。这种情况,使用实时阴影或者烘焙可能都会出现在Android平台上无法显示阴影的问题。解决方法就是,在从PC平台转到Android平台的时候,在Player Settings中将Use Direct3D 11后面的勾去掉(如下图),然后再Switch到Android平台,这时阴影效果就会有了。

OK,目前就遇到这么三种情况,如果还有其他情况,还请在留言中写出来,共同分享。
Unity 3D中的阴影设置的更多相关文章
- 在Unity 3D中加入Image图片
在Unity 3D中加入Image图片,我在刚开始是加不进去的,为什么呢?因为没有图片,图如下: 原因就是我们没有把图片设置为Script,图片的格式还是默认的那个,这只能作为贴图使用.我们将图片进行 ...
- Unity 3D中不得不说的yield协程与消息传递
1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...
- Unity 3d中Shader是什么,可以吃吗?
众所周知,Unity3d是一款跨平台非常广的游戏引擎,上手容易,界面友好,集成功能众多,是目前开发手游的主流引擎.本人有幸使用Unity 3d进行开发已一年多时间,已领略了这歀引擎的强大之处. 编写s ...
- 3D max模型导入unity 3D中注意事项
一.单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. ...
- Unity 3D中的内存管理
本文欢迎转载,但烦请保留此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备 ...
- Unity 3D中的菜单项
1.File菜单:主要是包含项目和场景的创建.保存以及输出等功能.2.Edit(编辑)菜单:只要包括对场景进行一系列的编辑以及环境设置操作等命令.3.Assets(资源)菜单:掌握资源在Unity中的 ...
- Unity 3D 中实现对物体 位置(position) 旋转(rotation) 大小(scale) 的全面控制
今天分享一些基础控制的脚本 1.位置(Position): 控制位置很简单,首先要知道要在xyz哪几个轴上移动,确定好后定义代表着那些轴的移动变量,速度(m_speed在函数外定义为全局变量)然后通过 ...
- Unity 3D中ToLua-UGUI使用说明、导入Unity流程、制作登陆界面
ToLua制作登录界面 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 请支持大神开发者:骏擎CP,蒙哥等奔 ...
- Unity 3D 中动态字体的创建
原创不易,转载请注明转自: http://blog.csdn.net/u012413679/article/details/26232453 ---- kosion 1.载入NGUI插件包,载入完毕后 ...
随机推荐
- Vue语法学习第三课——计算属性
模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.对于任何复杂逻辑,都应当使用计算属性. <div id="example&qu ...
- Thymeleaf中href与 th:href的区别
语法格式如下: <a th:href="@{/channel/page/add}">添加渠道 </a> <a href="/channel/ ...
- Openresty 进行限流的方法
1.使用Openresty进行限流, 使用漏桶原理进行设计 和路由系统设计类似. LUA脚本去通过变量去redis取值,从redis中得到队列的大小.漏和桶的大小. 然后通过比较,队列大小与漏和桶进行 ...
- 使用VB6读取数据库资源并发送邮件(原创)
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection ...
- page用法
分页一般场景用于查询所有数据 包引用 import org.springframework.data.domain.Page;import org.springframework.data.domai ...
- Python第十课学习
Python第十课学习 www.cnblogs.com/yuanchenqi/articles/5828233.html 函数: 1 减少代码的重复 2 更易扩展,弹性更强:便于日后文件功能的修改 3 ...
- Ubuntu和Linux的区别
大家听别人介绍自己的Ubuntu时,会听到“我的操作系统是Linux的”.其实,这样介绍是缺乏严谨性滴.我们只要知道两点,基本上就搞清楚Linux和Ubuntu的关系: 1. 严格来说,Linu ...
- ubuntu下编译小知识点
#改变编译器选项 SET(CMAKE_C_COMPILER"g++") #出现如下错误:添加C++11特性 #error: #error This file requires co ...
- PA教材提纲 TAW12-2
Unit1 Adjustment of SAP Standard Software(SAP标准软件修改) 1.1 Adjusting SAP Standard Software(如何修改SAP标准软件 ...
- 构建之法 chapter 8 需求分析 ——读书心得
需求分析,是软件工程开发的第一步,准确全面地找到用户的需求,尽可能满足用户的要求,是软件惺惺发展的基础.所以需求分析很重要.具体来说有以下几个步骤: 1.获取和引导需求:软件团队需要找到软件的利益相关 ...