没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
33页
CryEngine地形分析 Cryengine优化的出彩之处主要有以下几个方面: 1材质排序:从PerfHUD的结果来看,Cryengine对DXAPI的调用是最为简洁的,如此多的材质,却只有如此简洁的状态切换过程,不能不令人赞叹,相比之下,OGRE或者GB之类的三流引擎做得就要差得多。材质排序已经被做到了极至,从这里省下来的时间,成为了Crysis如此复杂的宏大场景的基础。 2技术选择:这是我最佩服Crytek的一点,如此多的次世代渲染技术,竟然每个都如此地和谐,兼顾着性能与效果。我研究了它的好多渲染手法,真是深有感触,为啥能如此恰当地选择技术呢?后来看了它们LPV的一篇Paper中有这样一个预算
资源推荐
资源详情
资源评论
作为一个刚从业不久的引擎开发人员,为了能快速有效地提高自己引擎的渲染
质量,使用了各种办法来解析 的渲染手法。在此我将以专业的视角
来与您分享我的经验和成果。如果您也是专业的图形程序员,希望与您一起讨
论,解读这款令人惊叹的引擎,如果您是一个刚刚入门的新人或者爱好者,这
将成为您不可多得的原创中文资料。
是目前最难窥探的引擎没有之一,比起在中国泛滥的虚幻和 的
源代码, 也显得神秘得多,很少有人说自己有这款引擎,哪怕只有
一个 。虽然有教育免费版,但是据我所知,也只有北大才申请到了授权。
花了 左右买了授权的好像也只有畅游和久游。但是越是如此,这款引擎
的魅力越让人无法抗拒。当我有 , 这样的分析工具时,我如何能
不想着去拆解这个神秘又神奇的引擎呢。
所伴随的往往是最高画质的赞美和硬件杀手的批评,但是,我觉得即使
这样, 仍然可以称为当今世界上优化最好,负载最大的引擎。其实
引擎的设计追求的主要是负载能力,追求画面的应该是游戏。但是反过来,拥
有最大的画面质量,没有引擎的强大负载,肯定是做不到的。任何引擎可以被
美术用成硬件杀手,但是能在同样的情况下,跑出 那样的画面的引擎肯
定有着强大的负载能力。
优化的出彩之处主要有以下几个方面:
1材质排序:从 的结果来看, 对 的调用是最为简
洁的,如此多的材质,却只有如此简洁的状态切换过程,不能不令人赞叹,相
比之下, 或者 之类的三流引擎做得就要差得多。材质排序已经被做
到了极至,从这里省下来的时间,成为了 如此复杂的宏大场景的基础。
2技术选择:这是我最佩服 的一点,如此多的次世代渲染技术,竟然
每个都如此地和谐,兼顾着性能与效果。我研究了它的好多渲染手法,真是深
有感触,为啥能如此恰当地选择技术呢?后来看了它们 的一篇 中有
这样一个预算
,
这从恍然大悟。原来他们竟如此专业,预先做了这样的评估,难怪技术都被优
化得如此高效,和谐。
!"瑕疵优化:这个通常被人忽略,或者被人认为是错的。很多人都觉得宁愿速
度慢一点,也要求技术没有瑕疵。其实,这是不对的。瑕不掩瑜,在 如
此震撼的效果面前,有几个会对它技术的瑕疵非常关注,觉得不能忍受呢?但
是在 中,所有的瑕疵都换来了宝贵的时间,以至它能对一个游戏添
加如此多的渲染技术,以达到 的效果。
有了这些与众不同,使 变得如此另类,以及怪物般的负载能力。当
然有人要说, 不是最快的,因为相同速度的情况下,虚幻的画面可
能更好。对,确实,虚幻的 #$ 技术提供了一个廉价的 效果,但是,
这个东西带来的限制却让虚幻完全没有能力大幅度改变场景光照,因为主光源
是预先渲染好的。这个东西在 ! 中已经被支持了,同时候还有了
这个神奇的动态 。这样说的话, 所追求的全动态场景的理念其实
也是逼真临场体验的一部分,当然需要更多的性能开销了。也就是因为
有昼夜变化,才带来了这种前所未有的临场他体验。
接下来,我要对 所使用的渲染技术进行一些细致的剖析,当然也带着一
些不理解的问题,希望大牛们能给我一些建议和帮助。
是用 % 制作的,! 无幸窥见,在这里,先说说确
切的 % 的渲染过程。
众所周知 %,没有使用 #&'#,所以无法支持太多的
光源,主要渲染围绕着阳光进行,而且使用了非常复杂的 (&'# 来实现
漂亮的材质,所以 ) 预渲染就变得很必要,不然会有很多无用象素被复杂
的 (&'# 渲染,当然这个和 #&'# 一样,无法支持
#,所以只有两种,普通和 '*。渲染 ) 为了开启 ),肯
定要进行排序,先渲染普通物体,后渲染带 '*(当然是使用 &'#
的 *( 来进行,没有状态切换)的物体。其实标准的 ) 应该是不需要
++ 的,但是 利用这个机会,输出了深度到一张 !%,,因为
视距为八公里,乘一个 "-% 映射到./-0,天空为 %。有了深度的 1
23,其实就已经可以做很多事了,除了光照外很多的后处理都可以用这张
深度缓冲来进行。有了深度后,会先进行 计算,然后阴影,这都是屏幕空
间的计算,然后渲染每个物体都会对这两张图进行采样。 是一张 ,
通道用来存 && 的结果, 通道用来存 %"* 的结果。然后进行
一次 2。阴影是有个 4 的,平行光一般是 ,剩下三个通道,大概可以
存放三个点光源或者 & +' 吧。然后就是对一张 -5-5-5-5, 进行
的高范围渲染。这回 ',2$ 已经是 62 了,因为深度已经完全填
充。当然,为了 ),还是先普通后 '*,然后会看到大量的碎片,
因为 ) 检测会挡掉大量像素。所有着色像素加起来也几乎就是屏幕像素了,除
非有两个三角形有点是同 ' 的 ,' 状态,当然可能性很低。完成后
会进行 # 渲染,主要是粒子,玻璃之类的东西。结束后,就要进行
*+4 和 ''++7 了。完成后,接下来有一个
#,当然除此之外应该还有抗齿过程,只是调试时肯定是要关掉的。
# 是个抗齿的后处理,只使用 ' 来提取边缘。然后还有个 +8,
大概会把火焰之类的 ++7 加大吧。在这之后,就是 &2&',来加上漂亮
的 和 7,最后会进行 ++#,完成渲染的最后一步,这样,
就能看到 的画面了。这样说是不是有些笼统呢?没关系,如果大家喜欢,
我还会继续深入剖析 渲染的一些技术点,来解读震撼画面背后的故
事。今天有点晚了先写到这儿了。
睡前再写一些看了 9 后的感想,9 是一款我很喜欢的开源引
擎。对于开源引擎来说,没有强大的资金支持,很难开发出像商业引擎那样功
能强大的实用引擎。9 这样研究一些新鲜的 ,支持 ! 或
:,--,以及一些好玩的技术的实现,却是真正有帮助的。它的字体算法的
设计真的是非常的独到,让我非常震撼,我正在想有什么办法能使缩小时更清
晰。像 ,$' 那种引擎中既见不到强大的实用性,又没有这样的看点,
我个人还是比较无爱的。9 最近又出了 ,,* 的水,对于只能看到
& '-;;; 的我来说,还是非常有帮助的,记得上回 有个水体插件,
也做了 ,,* 的波动,不过实时 刷顶点做法还是有点过了,这了新的
7+ 看,真的挺兴奋的。
有一点想问下作者,你的 #&'# 为啥不支持 的 呢,而使
用一个后处理来进行?- 开始,4* 不是已经可以 了吗?难道还有什
么障碍?
最后发张我现在自己渲染的图,虽然比 差不少,但是渲染技术是差不多
的。其实如果时间允许,我真是想自己操刀写个引擎,把 改成这样真不
是一般的麻烦, 的渲染体系太古典了,不太适应现代的技术,搞得我动
不动接管过来调 ,不然要么性能莫名其妙地不见,要么就是干脆无法实现。
不过因为 ;,使用了 #&'# 后只能用后处理来抗齿,其实可以
用超级采样,但是舍不得那性能啊。 的材质系统不灵活,导致我一怒之
下统一使用了线性过滤,材质糊糊的很不爽。下一步,可能就是要尝试下
了,毕竟 还是很令人 的
继续更新啦,首先谈谈 的地形技术。地形技术是 的一
个较为核心的技术,为了实现八公里的超远视距,地形经过了比较细致的优化。
的地形主要使用的数据结构仍然是高度图,并且在 % 中
可以看到,它所支持的尺寸非常有限,好像也不是动态加载技术的无缝大场景。
为此为特地下了 的 &#<+( 一探究竟。 的地形 +# 时并
没有 4+ ' 的过渡而是直接突变,这让我很惊呀,一般地,地形 +# 时的突
变会非常刺眼以至于让人难以接受,但是在 中,我却完全无法意识到这
一点,反复摆弄它的场景后发现,原来是超高密度的植被覆盖使得地形的跳动
完全被植被所遮挡,植被同样也在不体地突变,所以一般只能感觉到植被 +#
时的突变,而无法感觉到地形 +# 时的突变。因为不需要
4+ ', 地形的灵活性就体现出来了,它可以切到最小只有
%4=%4 一个单元,但是越远,绘制的实际单元还是有所合并,具体 的细
节仍然没有完全搞清楚,如果哪位大牛知道,希望能够不吝地告诉我,不胜感
激啊。但是有一点是很清楚,它的 是有根据视觉复杂度和距离两个标准来
决定网格精度的,我贴一张 7 先:
>>
可以看到,网格精度并不是均匀地由近到远递减的,而是以地块视觉复杂度为
权值的递减,期间有相当多的补面,以保证没有 * 型接缝。不过由于不需要
4+ ',跨级 之间的补面变得相对容易。
除了 外,地表材质也是 的一个比较出众的特性, 的地
剩余32页未读,继续阅读
资源评论
- wantyouknowme2013-11-30高端资源,很好的地形研究资料
- a162352014-02-06非常棒的资料,多谢了,对于学习Cry来说是个不错的帮助。
mycppmkk
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统(java+applet).zip
- 毕业设计:基于SSM的mysql-高校学生请假管理系统(源码 + 数据库 + 说明文档)
- 博客系统(struts+hibernate+spring).rar
- c语言学生成绩管理系统源码.zip
- 毕业设计:基于SSM的mysql-网约车用户服务平台(源码 + 数据库 + 说明文档)
- 内容管理系统(hibernate3+struts2+spring2)130224.rar
- 基于Java的班级管理系统课程设计源码
- 内容管理系统(hibernate3+struts2+spring2).rar
- 路由器刷breed Web控制台助手v5.8版本.rar
- Java 在 JEP 12 提供的特性预览
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功