找回密码
 立即注册
查看: 982|回复: 15

为什么CryENGINE3引擎号称最强大、最真实的引擎,但在孤岛危机2/3当中的画面仍然有一种光泽度过强的塑料质感?

[复制链接]
发表于 2021-1-5 09:29 | 显示全部楼层 |阅读模式
为什么CryENGINE3引擎号称最强大、最真实的引擎,但在孤岛危机2/3当中的画面仍然有一种光泽度过强的塑料质感?
发表于 2021-1-5 09:30 | 显示全部楼层
以我所知,Frostbite[1] 和CryEngine [2]都是在2014年才宣布转用基于物理着色(Physically-based Shading)。之前所使用的反射模型应该是传统的Blinn-Phong。

然而,Forstbite 2 使用了Enlighten,通过预计算 light probe (这是image-based lighting/IBL技术)可以取得更细节的间接镜面反射效果,含有反射色彩及细节,而不是简单地使用直接光照形成高光[3]:




同期CryEngine的开发者发明了Light Propagation Volume (LPV) [4][5],主张不使用预计算,在运行时直接计算动态间接光照。通过对LPV进行marching,可以产生半光泽材质的反射:



但这种高光不能控制光滑程度,而且性能比较低(似乎Crysis没有用到?)。因此,那个时候的CryEngine 3仍然主要使用简单光源来做高光效果。

顺带一提,在Unreal Engine 4 登场时也使用了一个实时全局光照技术 sparse voxel octree (SVO)/ voxel cone tracing [6][7],但由于运行时的计算量太大,后来放弃了此功能。取而代之回到预计算年代,并加入屏幕空间反射(screen-space reflection, SSR)等实时技术,可以说是一个折衷方案。这些光照技术及基于物理着色是2014年主流的做法,CryEngine也回到了预计算的方向。

最后贴 [7] 中的一页,展示简单光源和IBL的镜面反射在视觉上的比较:



[1] Lagarde et. al, "Physically Based Shading in Theory and Practice: Moving Frostbite to PBR", ACM SIGGRAPH Courses. 2014.
[2] Johnson et. al, "Physically Based Rendering", CryEngine Documentation. 2014.
[3] Andersson, "Shiny PC Graphics in Battlefield 3"
[4] Kaplanyan et al. "Light propagation volumes in cryengine 3." ACM SIGGRAPH Courses 7 (2009): 2.
[5] Kaplanyan et al. "Cascaded light propagation volumes for real-time indirect illumination." Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games. ACM, 2010.
[6] Crassin et al. "Interactive indirect illumination using voxel cone tracing."Computer Graphics Forum. Vol. 30. No. 7. Blackwell Publishing Ltd, 2011.
[7] Mittring, Martin. "The Technology behind the “Unreal Engine 4 Elemental Demo”." part of “Advances in Real-Time Rendering in 3D Graphics and Games,” SIGGRAPH (2012). http://advances.realtimerendering.com/s2012/Epic/The%20Technology%20Behind%20the%20Elemental%20Demo%2016x9.pptx

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-1-5 09:40 | 显示全部楼层
因为区分塑料和金属的方法,到后来才被参透。详见 金属,塑料,傻傻分不清楚 - 知乎专栏
发表于 2021-1-5 09:48 | 显示全部楼层
是不是最好另外说,渲染质量只是衡量一个3D游戏引擎优劣的一小部分。CryENGINE 3,UDK和Frostbite 2引擎都是大家比较熟悉的,但是这并不意味着它们就一定代表着“最佳画面”。最终的质量同制作组的实力和美术指导有很大的关系。

Crysis系列的画面质量的确可以算得上是一流,但是所有实时渲染CG的画面质量还有很长的路要走。所谓真实的画面中的很多物理效果的模拟运算量极大,游戏引擎都还处于初级的简化模拟阶段,比方说实时GI。事实上,我可以告诉题主,整个实时CG领域都是建筑在对物理光照的高度简化和模拟之上,尽管物理真实渲染的概念在慢慢兴起,但是同真实的物理规律相差实在是非常远。我只能说题主的期待太高了。次时代要来了,画面上又可以小小的迈进一步。不过游戏讲到底是要拿来玩的,我认为次时代机能更多的会用在其他方面,比如更加逼真的物理模拟,真正可以用于gameplay的流体模拟,画面相对不是重点。
发表于 2021-1-5 09:51 | 显示全部楼层
1 CE是GI为设计思路
2 寒霜是实时lightmap 为设计思路 pipeline上还是有差异的
3 实际开发中如果不对CE架构进行太大的改变 就要接受GI的优点和缺陷 GI下最终效果还是有很大的调整区间的 最终效果 取决于美术人员灯光 材质 贴图 和相关shader等 处理的把控
发表于 2021-1-5 09:57 | 显示全部楼层
风格不同,孤岛危机2就喜欢这种光泽强力的。
要我来说,WOW的引擎和老滚5的引擎最好。画面是为了游戏的气氛服务的。
发表于 2021-1-5 09:58 | 显示全部楼层
最终显示效果跟灯光 材质 贴图和后处理相关。题主说得情况是有些时候,所以应该不是灯光问题,如果灯光或后处理有问题那画面中所有物体都会有同样问题,所谓的塑料感通常会是shader的问题,除了故意为之的可能性也只有美术懒、忘了、头觉得不重要、没时间了可以解释了。
另,不要迷信参数和功能。
发表于 2021-1-5 10:05 | 显示全部楼层
CE本身没啥问题,但是材质设计和游戏本身的设定有些问题。

首先材质(尤其是人物皮肤、叶片、一些地板)的材质画风太超现实……
这点在CE3之后尤其明显。。。不论是Crysis2还是Crysis3都有很浓的美工科幻风格:
白种人真的就是白种人,白的跟A4纸一样…又由于缺乏光追所以导致没法和场景相协调…总觉得“天啊这个人脸在发光”;黑种人稍微好一些,肤色比较正常;
叶片就更不用说了,因为没有光追、然后美工又色调太浓……结果看上去像是塑料。。。
地板也是同理。

然后是,Crysis2和3故意设置了很高的HDR和很高的动态模糊。在大屏幕上可能很有沉浸感,但是在显示小物体动作的时候总是会有过度的残影。。。(天哪你看那个小兵他动作后面有拖曳感欸!)

大概。。。这就是为啥Crysis系列老是不赚钱吧_(:3」∠)_ 一代当时机器跑不动;二代CE3阉割过头牺牲了PC玩家好感,剧情跳跃又太大了伤老玩家心+二代编剧本身是个脑子不太好使的人,整个大背景突然把上代主角给写死了+其实剧本本身挺好的就是流程不够长大概是因为制作成本太高了;三代画风和二代没啥区别就是极限画质好了些。。。

听说Crytek已经发不起工资了……老子全套正版的信仰也救不了你吗QVQQQ
 楼主| 发表于 2021-1-5 10:07 | 显示全部楼层
可能CE当时pbr没做好吧。特别是用了blinnphong的shader并且把高光颜色搞成了单色,这类似非金属的模式, CE3.6才开始更换为GGX。unity 以前也这么干的,specular 单色并且塞到了albedo贴图的alpha通道中,结果带alpha贴图压缩率也没上去,效果也差了。

补充一点:2011年的孤岛危机2虽然大量使用IBL和更高级的BRDF,但是环境贴图仍是传统做法,即把IBL卷积的存储在不同的cubemap mipmap层中的做法,IBL时常会出现过亮或者过暗的问题,也使得不少材质都会有种所谓的塑料感,UE通过split-sumapproximation可以更好的控制IBL。
此外,孤岛危机2的菲涅尔反射公式不是基于半角向量的,由于采用deferred lighting而涉及到一个G-buffer的分配问题,孤岛危机2的菲涅尔反射被迫使用了n*v的近似,这种近似会使高光衰减地更快,从而加重了塑料感。

按照real time rendering中的说明:
现实中,塑料有一个白色基层,在这个基层中通常有一些色素颗粒。镜面反射出来的光线通常保持白色,一般游戏里specular直接使用0.04这个值, 原因是它并没有穿过这个材质,而来自这个材质的漫反射光穿过了这个材质并与其中的色素相互作用。
金属可以导电,所以一些电磁波可以激活其中的电子,而激活的电子又会使这些电磁波产生反射。这种特点就导致镜面高光用到了表面颜色(这个颜色可以随着入射角度的改变而变化),同时也减少了漫反射分量,因为很少会有光线在表面内部进行反射,光滑的金属基本上没有漫反射颜色。

在物理方面需要考虑的一个重要因素是 Fresnel反射(一般在BlinnPhong模型中并没有考虑这个),它对像塑料、玻璃,以及水这样的不导电物质(绝缘体)来说特别重要。当从入射余角方向来观察这些绝缘体的时候,反射就会比较强。相比之下,金属材质的反射强弱与角度关系不大。在最小的入射余角处,所有的材质都会变成完全反射,很容易理解这种效果:拿一本书,沿着一个浅角度观察这本书上的一页,然后对准一个光源(计算机的监视器就是一个不错的光源)。在观察角度非常小的时候,书贞就会发亮,同时还可以看到计算机屏幕的反射。这就是为什么光亮的金属看上去有金属光泽、光亮的塑料看上去还是塑料的原因。

所以pbr中金属和塑料的主要区别在于:
1. 高光颜色,金属三个通道颜色基本上完全不同,塑料水等非金属大部分为单色0.04。
2. Fresnel表现完全不同,因为Fresnel中的F0参数就是高光颜色。
非金属Fensnel表现:
金属的Fensnel表现:
下图为球形下的比较,左为金属,右为非金属,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-1-5 10:17 | 显示全部楼层
引擎强大和最终游戏画质不佳并不矛盾。

这就好比我有一辆世上最强大竞速一定棒的赛车,开在村村通公路上,恐怕并不会比拖拉机更拉风一样。

要再现强大的画面,需要的是强大的计算能力。强大的引擎运行在强大的计算机上,可以充分调动计算能力,从而尽可能真实地重建场景和动作。不然好莱坞为什么要租用天河一号呢。

不同于电影,强大的引擎开发出来的游戏,最终是需要运行在我们的PC和游戏主机上的。这就不得不兼顾到PC和主机有限的计算能力。因此最终游戏画面必须向机器性能妥协,而对于3D引擎来说这种妥协就意味着算法的简化、近似甚至替代。

哎呀这个背景渲染好费劲,干脆用贴图代替吧。

哎呀这个下雨好费GPU啊我们用近似算法吧。

哎呀这个桶被子弹打到以后的运动根本算不动啊干脆设计成固定的算了。

哎呀这个光照PC机根本模拟不出来啊干脆换个复杂度低一点的算法好了。

因此游戏出品的时候,不得不牺牲画面来确保性能——我们毕竟不想看幻灯片是吧。要确保游戏流畅,就得放弃部分画质。

而不同的引擎放弃画质的方法是不同的。同样是近似模拟光照,就可能有ABCD四种主流的算法。而每种算法都有若干种改进,发论文的人都号称这些算法是性能最好的。但实际上呢,对于不同的实际情况它们这些算法有着各自不同的表现。引擎用哪种方法,又见仁见智了。因此即使号称最强大的那些引擎,在PC机上的画质也会有所不同。你可以称为“塑料感”,而他们可以认为“很动感”。

所以,也许并不是车不够好,可能只是你的路太烂了。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 23:29 , Processed in 0.189086 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表