unity优化交互媒体设计教案unity

Unity3D自带功能:摄影机

2017-09-05  本文已影响349人  shimmery

Unity3D本质上还是个三维游戏引擎,所以其摄影机的概念与我们在三维软件中的概念是相通的。

新建场景之后,系统会自动创建一个Main Camera,这个Main Camera就是我们场景的主摄影机。

unity_camera_01.png

主摄影机和场景视图(Scene View)的摄影机角度是不一样的,新人常常在场景视图中对好了正确的摄影机角度,然后点击“运行”,结果发现游戏画面完全不是自己想要的样子。

如果希望将主摄影机对齐我们的场景视图,只需要选择主摄影机物体,然后通过菜单:GameObject > Align With View就可以了。这个命令实际上会将所选择的任何物体都与场景摄影机对齐,并不仅限于对齐主摄影机。

unity_camera_02.png

这个命令附近的命令也还都蛮有用的,值得记一下快捷键:

摄影机相关参数

unity_camera_03.png

多摄影机设置

在游戏中设置多个摄影机是很常见的操作,最主要的功能是将不同“层次”的图像叠加显示给用户。

比如游戏中的UI元素,通常就是用专门的摄影机来渲染显示,只不过在Unity3D中,UI功能是其内置的功能模块,所以无需用户自己去设置UI摄影机。

unity_camera_05.png

可以看到场景视图中UI元素所占用的区域在我们实际场景的旁边而且非常巨大(这是因为Unity3D的UI元素1像素对应场景中1单位空间),但在游戏视图中,UI和场景的图像之间是叠加的关系。

如果希望在场景视图中叠加非UI元素,则需要另外添加一个新的摄影机,设置Clear Flags为Depth only,并将Depth值设置得比Main Camera要大。

unity_camera_08.png

我们可以把第二摄影机设置为正交摄影机,也可以单独为其视野内游戏物体设置光照。这里我使用的是聚光灯,避免对主摄影机画面造成影响。

unity_camera_06.png

这样我们就可以看到,第二个摄影机中的图像被叠加到主摄影机图像上了。

unity_camera_07.png

摄影机输出贴图的操作方法

Unity支持将摄影机的画面作为贴图显示在场景物体表面,比如汽车反光镜的影像,或者监控画面影像等等。具体操作方法如下:

首先在Assets文件夹内创建一个Render Texture资源,设置其贴图模式(Dimension)、贴图尺寸(Size)、是否使用抗锯齿(Anti-Aliasing)、色彩格式(Color Format)等等参数。

unity_camera_09.png unity_camera_10.png

然后在场景中创建一个新的摄影机,设置其Target Texture参数为刚才创建的Render Texture资源。

unity_camera_13.png unity_camera_11.png

最后将这个Render Texture如同普通贴图一样用在某个Material的颜色通道上,再将这个Material指定给某个场景物体(比如我新建的一个简单Quad面片),我们就能在获得这个摄影机的事实画面了。

unity_camera_12.png

摄影机后期特效

摄影及后期特效主要指对摄影机渲染结果进行一些后期处理,以增强画面效果,比如整体画面的校色、加辉光、加模糊等等。

Unity在不同版本中处理摄影机后期特效的方式略有所不同。当前版本主要使用
官方插件Post Processing Stack来进行,比起上一版本中直接添加特效Script的方式,要显得简单明了得多。

unity_post_01.png unity_post_02.png

安装完Post Processing Stack插件之后,就可以为摄影机物体添加一个Post-Processing Behaviour的组件,这个组件需要调用一个Profile文件来执行后期特效。

unity_post_03.png

在Assets文件夹中创建一个Post-Processing Profile资源,然后将这个资源拖到Inspector面板中Post-Processing Behaviour组件上指定给Profile参数。

unity_post_04.png

双击Profile文件,在Inspector中可以看到所有可用的后期效果都被集成在这里了:

unity_post_05.png

Fog
为Diferred Rendering Path激活雾效,在Forward Rendering Path下无任何作用

Antialiasing
添加画面抗锯齿。同样也是为Diferred Rendering Path所准备,因为Forward Rendering Path可以激活硬件抗锯齿,但Diferred Rendering Path无法享受这一功能。

Ambient Occlusion
相对而言比较廉价的屏幕环境排除效果。

Screen Space Reflection
可以获得一些屏幕空间的反射,是通过法线来计算的,比单纯材质的反射要多一点细节。

Depth of Field
激活景深效果,挺常用的。

Motion Blur
激活运动模糊效果。

Eye Adaptation
可以根据场景亮度来自动调节曝光度,也就是模拟人眼瞳孔自动收缩的视觉效果。场景突然变得很亮时会降低曝光,让玩家看清楚场景画面。

Bloom
激活辉光效果

Color Grading
校色,这里提供的选项还蛮专业的。

User Lut
色彩匹配。用户可以在PS等其他软件中进行校色工作,然后生成一个LUT图示给Unity,然后Unity就会根据这个LUT图示中的颜色变化来匹配其他软件中的校色效果。

Chromatic Aberration
模拟一些老旧镜头在边缘有色彩分离、模糊、变形等效果

Grain
激活全屏幕的噪点

Vignette
激活边缘暗化效果

Dithering

为了保证后期效果得到完美体现,通常要将摄影机和渲染质量设置一下:

  • 摄影机的Rendering Path修改为Deferred
  • 取消摄影机Allow MSAA的勾选,Deferred方式下MSAA不起作用
  • 勾选上摄影机的Allow HDR的勾选
  • 在Quality面板中同样取消掉Anti-Aliasing的设置

上一篇下一篇

猜你喜欢

热点阅读