【原创】点点鼠标在Unity3D中实现准电影级镜头感渲染效果

来源:互联网 发布:vb系列振动电机价格 编辑:程序博客网 时间:2024/03/29 18:39
 

学习和使用Unity3D也有个把月的时间了,得益于十多年来对3D图形算法及游戏编程的不懈努力学习,上手Unity3D我居然只用了1晚的时间,这不是夸张的说法。我只能用一句话来形容我当时的感觉:众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

如果你问我最好的3D游戏引擎是什么,我不一定能给你满意的回答,这就像你问我世界上谁最美?什么编程语言最好一样,我基本没法给你答案,但是如果你问我上手最快最简单易用的引擎是哪个?我一定会给你推荐Unity3D。当然我也试着学用过Unreal引擎,但是碍于没找到好的教程或视频,我一直还连Unreal的门都没入。

使用了这么久,期间也做了几个小场景的不算游戏的实验品吧,感觉是太容易了,因此我想一定要将这个简单易用的引擎推荐给大家,当然很多人已经在这样做了,在这里我只是将我的一些心得体会以博文的方式不定期的分享给大家,算是为Unity3D引擎的发扬光大添砖加瓦吧。

当今已经有很多关于Unity3D的图书、教程、视频等等学习资料供大家参考了,因此在写Unity3D的博文时,我就不想在按照原来那种从入门到精通再到放弃的套路来写了,我想更挥洒自如一些,纯粹跟着感觉走,哪里让我感觉舒服,我就写哪里。

今天我要为大家分享的就是如何快速的在Unity3D中实现如光晕、动态模糊、景深等等电影级镜头渲染感的方法,主要就是因为我对3D渲染画质的近乎变态的追求所致,就好像农民伯伯爱大米一样,这需要理由吗?

其实在Unity3D中不乏各种特效渲染组件,要做到电影级渲染,你要做的只是点点鼠标即可,当然前提是你得有一块好显卡,并且遗憾的是有些效果还不能放到移动平台上如iOS和Andriod上。ok,不要在意这些细节,给大家好看才是王道!当然这说起来容易,做起来可能就需要的是你深厚的基本功了,当然我假设你对当代图形渲染的前沿算法至少是理论已经有了相当深厚的了解,所以不要想在这里搞明白为什么,那将是其他文章中的内容了,这篇文章中我只会告诉你应该干什么。

那么接下来我们就闲言碎语不要讲,直奔第一个主题,光晕!

首先,你自己先做一个简单的场景,就是造造山,开开路,种种树,放放人物,并且架好你的摄像机,这些你应该都会了,那么我做的场景像下面这样:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

接下来,就是选中场景中的平行光源,然后在Inspector面板中点击Flare选项,在弹出的选择框中选择50mmZoom镜头即可,操作如下图所示:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

然后让摄像机对准太阳就可以看到下面的效果了:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

感觉还可以吧?怎么样操作是So easy吧?

接下来我们来实现景深和动态模糊,首先选中场景中的主摄像机,然后添加组件->Image Effects->Blur->Blur(Optimized),具体操作像下图这样:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

接着用同样的操作步骤添加景深组件,如下图所示:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

添加完成后,应该可以再Inspector 面板中看到摄像机多了两个脚本组件,如下图:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

同时设置图中红色箭头所指的属性,指向你要聚焦的游戏对象,在我的场景中就是那个Unity3D自带的AI人体对象,当然为了更好的看效果,建议你将AI人体对象的目标设置为你的摄像机。点击运行,可以看到如下的效果:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

怎么样是不是镜头感十足,当然不要在意这个没有颜色的人体对象,因为我也实在想找个美女的模型,可惜没找到好看的,免费的都不好看,只能拿这个将就了。郑重声明本人不是美工,画画都不会。

在接下来就是让我们看看如何实现HDR(高动态范围光照图)了,这个在Unreal引擎的最新大作中作为高级效果来宣传,作为爱尝鲜的我当然不会放过这个效果,于是也在Unity3D中试了试,原来也是So easy!首先,同样也是先选中场景中的主摄像机,然后在Inspector面板中点击Allow HDR属性,打钩,如下图:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

为了最真实的体验HDR效果,可以构造一个类似的黑夜场景(把光源调暗,或者仅放置一个点光源,并调暗),最终运行后效果如下:

点点鼠标在Unity3D中实现准电影级镜头感渲染效果 - Gamebaby Rock Sun - Gamebaby Rock Sun的博客

 

怎么样像不像人类登陆外星?

当然之前的白天的效果图中也是打开了HDR,你可以自己分别打开和关闭HDR后运行看下对比之后的效果。体验一下HDR带来怎样的画质改善。

最终,这些效果的实现,让我体会到一个高度封装的3D引擎,带给我们的满满都是惊喜。想象如果直接使用C++、OpenGL/D3D、及Shader来实现同样的效果,需要付出怎样的艰辛,而这一切在Unity3D中只需要点点鼠标就可以做到,同时你基本不用去考虑光晕算法是怎样,怎么写Shader等问题,也不需要去实际了解Blur(模糊)是怎么回事,只需要有个基本概念即可。

当然这不是说你就不需要去学习这些了,反过来其实可以将这些看做是启发你浓厚兴趣的起点,你反倒需要继续深入钻研学习这些酷炫的渲染效果的算法知识以及实现方法,这才是你最终成长为资深Unity3D开发专家的不二法门。

阅读全文
0 0
原创粉丝点击