Unity光照与渲染设置学习笔记
学习了一下unity中有关光照和渲染的一些设置,现在才明白之前遇到的一些问题只是没有正确设置而已。
unity不同版本的光照设置会有一些差异,而且可以调节的参数非常多,这里只记录一些重要的参数和使用方法,具体使用时再查阅文档即可。
调节这些参数的主要目的就是在性能和画面效果上达到平衡,所以具体怎么调还是看游戏需求。
作为一个还不懂图形学的萌新,只是从效果出发学习这些设置,并不了解原理,如果写的不好,请见谅。
unity版本:2018.3.2f1
1.色彩空间
打开项目首先要设置的就是色彩空间,unity中有Linear和Gamma两种色彩空间可供选择,这两种色彩空间的效果如下图所示,很明显Gamma空间在表现上不如Linear空间自然、真实,很容易曝光过度,所以如果想要更好的画面效果,建议选择Linear空间,如果追求性能,比如移动平台游戏可以考虑选择Gamma空间。
unity2018.3.2f1中可以在Edit->Project Settings->Player->Other Settings下选择色彩空间。
2.天空盒
天空盒的本质其实是一个材质,要自定义天空盒,只需创建一个材质,将shader选择为Skybox下的一种,赋予对应的图片,然后将材质拖入场景,就能使用自己的天空盒了!
3.环境光
接下来就是最重要的Lighting面板的设置了,unity2018.3.2可以在Window->Rendering->Light Settings打开,这个面板包含了大量与光照和渲染相关的设置,直接影响到游戏的画面效果。
咱们一点一点来,先从Environment选项开始,这里包含了一些与环境光照相关的设置。
Skybox Material用于指定天空盒,跟直接把天空盒材质拖进场景没有区别。
Sun Source不需要设置,unity会默认把场景中最强的平行光作为太阳,这样当你旋转平行光时,天空盒上的太阳也随之移动,并且场景会有白天黑夜的变化。
Environment Lighting用于设置环境光源,选择skybox则环境光来自天空盒,如果将Source设置成color就可以自定义环境光的颜色。
下图为使用天空盒作为环境光和自定义环境光为红色的效果,很多游戏为了营造气氛,都会使用自定义的环境光。
Environment Reflections决定环境反射,如果你的场景中有镜子或其他带有反射性的物体,这个选项决定它们反射什么对象,你可以使用天空盒,或者自定义的CubeMap,值得注意的是,如果你发现反射的内容很模糊,可以调节Resolution参数, 提高反射的分辨率。
4.灯光参数
简单说一说unity里的灯光,unity有四种灯光类型,分别是聚光灯、平行光、点光源、区域光,每种光源有一些特殊的参数可以调节。
光源模式可以选择Realtime(实时)、Mixed(混合)、Baked(烘焙)三种,实时灯光对性能消耗最大,烘焙模式可以将预先将灯光烘焙成光照贴图所以性能最优,而Mixed介于两者之间。
Shadow Type决定了光源对阴影的影响,可以选择无阴影、硬阴影或软阴影,还可以调节阴影的强度、分辨率、偏移等,软阴影最耗性能,硬阴影其次。
5.全局光照(Global illumination)
接下来是两个全局光照选项,分别是实时全局光照和烘焙全局光照,通常这两个只要开一个就行,取决于你的游戏使用实时光照还是烘焙光照。
Mixed Lighting下可以选择Lighting Mode,有Baked Indirect,Subtractive,Shadowmask三种
其中Subtractive效果最差,性能最好,Baked Indirect效果最好,性能最差,Shadowmask居中。
6.烘焙光照参数
下面来看看烘焙光照相关的参数,这决定了你烘焙出的光照贴图是什么样的。
这里只说一些重要的参数。
LightMapper可以选择烘焙方案,一般默认就行。
Lightmap Resolution光照贴图分辨率,这直接影响烘焙的时间长短。
Lightmap Size决定光照贴图大小。
Compress Lightmaps决定是否压缩光照贴图,如果追求更好的画面请取消压缩。
Ambient Occlusion决定是否开启环境光遮蔽,想要更真实的效果请开启。
Indirect Intensity决定间接光的强度,可以调整场景的整体亮度。
设置好这些参数之后记得将场景中的静态物体设置为Lightmap Static,这样才会受到烘焙光照的影响,然后点击Lighting面板最下方的Generate Lighting,即可开始烘焙光照贴图。
烘焙完之后相当于把光照贴到了物体身上,即使把场景中的灯光删除,光照也依然存在,不过此时移动灯光或物体,物体的阴影并不会改变,所以只有不移动的物体才适合烘焙光照。
7.后处理
最后简单说说屏幕后处理,这是一种快速提升游戏画面效果的“黑科技”,在unity asset store上可以免费下载unity官方的后处理插件Post Processing Stack。
使用方法如下:
在project面板中右键Create->Post-Processing Profile创建一个后处理配置文件
后处理配置文件中有很多效果选项,点击前面的勾即可启用,每个选项有各种参数可以调节,感兴趣可以自己尝试,我个人认为Bloom真的非常好用,它能使画面亮部产生光晕效果,让你的游戏瞬间变得如梦似幻,还有Color Grading,可以改变画面的色调、饱和度、对比度等等,非常实用,可以帮助你快速营造出特定的场景氛围。
设置好配置文件之后之后,在摄像机上挂载Post Processing Behaviour这个脚本,并把我们刚配置的文件拖上去,然后就大功告成了!
下面是不使用后处理和使用后处理的对比,我没有对物体和灯光做任何改变,只随手调了一些后处理参数,可见后处理的强大。
关于光照和渲染,其实还有太多的知识,但普通的开发者使用这些设置已经能达到不错的效果了。
最近其实还是挺迷茫的,写博客的时候反而能静下心来,倒也是意料之外的收获。
接下来的规划准备学习一些编程模式和算法,时间充裕的话想把游戏美术搞起来,加油!
Unity光照与渲染设置学习笔记的更多相关文章
- PBR(基于物理的渲染)学习笔记2
相关资料 https://www.cnblogs.com/dojo-lzz/p/13237686.html 文档:PBR学习笔记.note 链接:http://note.youdao.com/note ...
- PBR(基于物理的渲染)学习笔记
PBR基本介绍 PBR代表基于物理的渲染,本质上还是 gl_FragColor = Emssive + Ambient + Diffuse + Specular 可能高级一些在考虑下AO也就是环境光遮 ...
- UINavigationController的创建和相关设置---学习笔记四
导航控制器 一.设置字体大小,背景等. 二.自定义返回按钮. 三.设置手势. 一.导航中也有个appearance属性,通过它可以设置所有导航的颜色. 二.自定义返回按钮. 1.首先需要知道的是,要把 ...
- secureCRT简单设置(学习笔记二)
菜鸟记录. 一.更改终端类型 选项-全局选项-默认会话-编辑默认设置-终端-仿真-右侧选择类型,下方设置缓冲区大小 二.设置字体和外观 上方窗口外观-右侧设置-字体设置字体类型大小,下面光标可以设置光 ...
- React学习笔记 - 元素渲染
React Learn Note 3 React学习笔记(三) 标签(空格分隔): React JavaScript 二.元素渲染 元素是构成react应用的最小单位. 元素是普通的对象. 元素是构成 ...
- Stealth视频教程学习笔记(第一章)
Stealth视频教程学习笔记(第一章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...
- Stealth视频教程学习笔记(第二章)
Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...
- React学习笔记 - 组件&Props
React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...
- React学习笔记 - JSX简介
React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...
随机推荐
- 创建SQL Server数据库集群的经历
自己尝试安装SQL Server集群和配置AlwaysOn可用性组,服务器系统是Windows Server 2012 R2,SQL Server是2014企业版,我的环境是一台服务器,然后用Hype ...
- Linux第三课——目录操作
ls 列出目录下的文件及子目录 ls -l 以列表的方式显示详细信息 ls -a 显示所有的 包括隐藏文件 ls -A 显示除了 . ..以外的任何文件 ls -i 显示文件的节点号 ls --col ...
- 【转】默认网关有什么用?我应当怎么填写默认网关和DNS呢
默认网关有什么用?我应当怎么填写默认网关和DNS呢? 目前使用的是pppoe方式上网,无猫,只是将一根入户的网线插在无线路由上面,然后在路由中设置ppoe方式上网,输入帐号密码.一般电脑和手机全设成了 ...
- Hello Shader之Hello Trangle
这两天配了一下现代OpenGL的开发环境,同时看了一下基础知识和编程规范 写了一个编译GLSL语言的前端程序和一个Hello trangle的程序 另外,推荐两个资源 1.学习网站Learn Open ...
- Chrome插件(扩展)开发全攻略
[干货]Chrome插件(扩展)开发全攻略:https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html
- 20165302 程上杰 Exp2 后门原理与实践
一,后门概念 后门就是不经过正常认证流程而访问系统的通道. 二,后门工具 1.netcat(nc.ncat) 是一个底层工具,进行基本的TCP UDP数据收发.常被与其他工具结合使用,起到后门的作用. ...
- 关于Spring IOC (DI-依赖注入)需要知道的一切
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...
- 初学者在Mysql8.0连接时的几个常见基本问题
最近在做一些java web整合时使用的最新版Mysql8.0.3,发现Mysql连接中的几个问题,总结如下: package db; import java.sql.*; public class ...
- 各种 mv power cell
1. retention register : VDDB 是 backup power,当primary power shutoff 时 backup 会继续供电,将 reg 当前状态保存下来 2. ...
- redis集群搭建及连接(阿里云)
阿里云上面装redis集群基本被虐死,主要问题就是私有IP和公有IP. 下面分享成功搭建的步骤: 两台测试服务器,分别为:127.0.0.1,127.0.0.2.每分服务器有3个节点. 1.127.0 ...