在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中的阴影设置的更多相关文章

  1. 在Unity 3D中加入Image图片

    在Unity 3D中加入Image图片,我在刚开始是加不进去的,为什么呢?因为没有图片,图如下: 原因就是我们没有把图片设置为Script,图片的格式还是默认的那个,这只能作为贴图使用.我们将图片进行 ...

  2. Unity 3D中不得不说的yield协程与消息传递

    1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...

  3. Unity 3d中Shader是什么,可以吃吗?

    众所周知,Unity3d是一款跨平台非常广的游戏引擎,上手容易,界面友好,集成功能众多,是目前开发手游的主流引擎.本人有幸使用Unity 3d进行开发已一年多时间,已领略了这歀引擎的强大之处. 编写s ...

  4. 3D max模型导入unity 3D中注意事项

    一.单位,比例统一   在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. ...

  5. Unity 3D中的内存管理

    本文欢迎转载,但烦请保留此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备 ...

  6. Unity 3D中的菜单项

    1.File菜单:主要是包含项目和场景的创建.保存以及输出等功能.2.Edit(编辑)菜单:只要包括对场景进行一系列的编辑以及环境设置操作等命令.3.Assets(资源)菜单:掌握资源在Unity中的 ...

  7. Unity 3D 中实现对物体 位置(position) 旋转(rotation) 大小(scale) 的全面控制

    今天分享一些基础控制的脚本 1.位置(Position): 控制位置很简单,首先要知道要在xyz哪几个轴上移动,确定好后定义代表着那些轴的移动变量,速度(m_speed在函数外定义为全局变量)然后通过 ...

  8. Unity 3D中ToLua-UGUI使用说明、导入Unity流程、制作登陆界面

    ToLua制作登录界面 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 请支持大神开发者:骏擎CP,蒙哥等奔 ...

  9. Unity 3D 中动态字体的创建

    原创不易,转载请注明转自: http://blog.csdn.net/u012413679/article/details/26232453 ---- kosion 1.载入NGUI插件包,载入完毕后 ...

随机推荐

  1. poi读取excel工具类

    package com.manage.utils; import ch.qos.logback.core.net.SyslogOutputStream; import com.google.gson. ...

  2. 1. 做node项目 (第二个月)

    工作栈: Node + Express + Mongoose +  Mongodb + Vuejs 主要做了 mongodb的 curd , 因为以前做 PHP + MySql 所以基本大同小异. n ...

  3. echarts绘制k线图为什么写candlestick类型就报错

    错误提示:echarts-en.common.js:11713 Uncaught Error: Component series.candlestick not exists. Load it fir ...

  4. 安装MySql 8.x版本客户端连接失败解决方案

    ---恢复内容开始--- 安装完8.0.11MySql数据库及客户端工具Navicat Premium 12(具体安装方法不详细赘述,自行百度,推荐网址:https://blog.csdn.net/c ...

  5. 自动化测试-17.selenium数据的分离之txt文本的写入与读取

    前言 数据量偏小时,用txt文本保存数据比较合适,以-进行区分,为什么不用:呢?原因是,我们在使用数据时,会存在url地址的情况,里面宝行:所以用-进行替代 此处附上代码 #encoding=utf- ...

  6. nginx 支持ipv6设置

    为了使nginx支持ipv6 访问需要做以下配置: 1.找到nginx的安装路径: 使用命令:whereis nginx 查看nginx安装路径: 进入nginx执行文件目录: 先用./nginx - ...

  7. Altium Designer 10 执行DRC发现有 Length Constraint 解决办法

    在PCB布局连线结束后,执行DRC,结果Length Constraint 报错,如图: 在Design Rules中找对应的规则约束,怎么也找不见. 其实是,在差分对进行等长蛇形绕线的步骤中,约束了 ...

  8. web h5常用代码总结

    注意:本文原创,转载请说明出处 1.使图片和文字水平居中,给图片css样式:vertical-align: middle;vertical-align:middle的时候,是该元素的中心对齐周围元素的 ...

  9. Python入门 (一)

    本文是个人python学习笔记,学习资料为廖雪峰python教程,如需更多内容,请移步廖老师官方网站. 一 安装 官网下载安装包安装,安装好之后,在命令提示符输入python进入Python交互模式: ...

  10. Buy or Build(UVa1151)

    如果枚举每个套餐,并每次都求最小生成树,总时间复杂度会很高,因而需要先求一次原图的最小生成树,则枚举套餐之后需要考虑的边大大减少了. 具体见代码: #include<cstdio> #in ...