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插件包,载入完毕后 ...
随机推荐
- js /Date(1550273700000)/ 格式转换
self.FormatJsonDate = function (jsonStr) { var tmp = ""; if (jsonStr == null || jsonStr == ...
- Linux服务器管理神器-IPython
系统管理员的首选,一个很智能的交互式解释器. 一.特性: 1)magic函数:内置了很多函数用来实现各种特性. 2)Tab补全:可以有效地补齐Python语言的模块.方法和类等. 3)源码编辑:可以直 ...
- Python04(基础语法)
Trainning-day03回顾1.输出重定向 > 将输出到终端的内容输出到指定文件 命令 > 文件 注意: 1.如果文件存在,覆盖原文件 2.如果文件不存在,直接创建新文件2.输出追加 ...
- makefile笔记10 - makefile 函数库文件
函数库文件也就是对 Object 文件(程序编译的中间文件)的打包文件.在 Unix 下,一般是由命令"ar"来完成打包工作. 一.函数库文件的成员 一个函数库文件由多个文件组成. ...
- oracle数据库查询和更新
package sqltest; import java.sql.*; import parameter.BaseCanShu; public class PublicDbOracle { stati ...
- python实现三级菜单间的前后跳转
#录入菜单def createMenu(): Menu = {} provinces = ["陕西","四川","江苏"] sh ...
- JavaScript中常用的BOM对象(属性、方法)
window对象 定义: 一个浏览器窗口实例 与窗口有关的信息(应用程序编程接口) ECMAScript规定的Global对象 方法 open(url),返回标识符 引用 即将打开窗口的.(调用该引用 ...
- centos7的启动流程
CentOS7的启动流程 uefi或BIOS初始化,开始开机自检 加载mbr到内存 GRUB的阶段 加载内核和inintamfs模块 kernel内核开始初始化,用systemd来代替centos6以 ...
- 06_mysql先分页查询再排序
数据库字段: SELECT * FROM (SELECT * FROM tb_item LIMIT 3,3) temp_table ORDER BY id DESC; 查询结果:
- vmware虚拟机安装了linux(redhat)系统忘记登录密码怎么办
今天,打开了以前装过的vmware虚拟机,正常启动之后,一直想不起登录密码,怎么都是登录不进去.然后在网上查找资料,最后重置了密码.下面,分享下具体操作过程. 1.重新启动虚拟机,在出现启动进度条时按 ...