- 男子下高铁抽烟忘上车连扇自己耳光
- 南昌再通报李某雪事件:已出院
- 地铁口像棺材该负责的不只有设计师
- 看到祖宅的那一刻 台名嘴几度哽咽
- 女生要坐40小时硬座 邻座男生惊呆
- 霍启刚郭晶晶看刘德华演唱会
- 深圳家长花85分钟才做完小学卷子
- 海口一老年公寓虐待老人?假
- 亚昆塔:尤文将与米兰意甲争四
- 杨紫演技
声明:本文来自于(ID:acamandola.com)授权转载发布。
在2002年,最优秀的CRPG游戏除了《地牢围攻》和《无冬之夜》之外,还有Bethesda的《晨风》。《晨风》采用了先进的游戏引擎,尽管对系统的要求非常高,但玩家们普遍觉得这是值得的。该游戏赢得了众多奖项,并推出了两款扩展包。如今,Bethesda即将完成《上古卷轴》的最新作品——《上古卷轴:地狱》。如果你将画面细节降低,即使是今天的高端显卡也能顺畅运行。为了探讨这款PC和Xbox双平台游戏的人工智能和物理系统等方面,我们对开发者进行了采访。Gavin Carter慷慨地为Beyond3D的读者回答了以下问题。
能否介绍一下你们使用的动态阴影技术?它们看起来有点像阴影贴图。
的确,它们是一种阴影贴图,但与我们在E3上看到的有所不同。在最初的阴影测试中,我们在游戏中的每个表面都使用了立体贴图(cube maps),但在进一步测试中发现,这并不是一种实用的解决方案,因为速度太慢了。于是我们改为为每个角色直接使用阴影贴图(shadow maps)。系统支持完整的自阴影效果,我们通过多重采样(multiple samples)和深度比较(depth comparisons)来实现柔和的阴影效果。在保证效率和效果的前提下,我们最终开发出一个能够普遍支持地狱中多种环境的系统。
各种配置的计算机都能看到动态阴影效果吗?即便在低端机器上效果可能略有缩水。还是说动态阴影只是为高端机器量身定制的?与第三代相比有什么质的提升?
各种配置的系统都能够展现动态阴影效果。低端机用户可以通过禁用自阴影和柔和阴影,或调整角色接收阴影的数量来提升速度。与《晨风》相比,进步是显著的。我们不再使用模板阴影(stencil shadows),现在的系统以更小的代价实现了更好的效果。此外,阴影现在使用的是世界坐标系,而不是《晨风》中使用的屏幕坐标系,这使得我们可以增加一些新效果,比如逐渐消失和随距离模糊的阴影边缘。
你们是否对一些静态阴影使用了预计算技术?如果使用了,它们与动态阴影结合得如何?
我们没有使用任何预计算阴影。主要原因是预计算阴影贴图与我们的动态阴影技术结合得不好。此外,完全使用动态阴影方案的好处在于我们的艺术家可以在一个更灵活、所见即所得的环境中创造出他们理想的场景。
在最近的一次采访中,你提到《地狱》中物体表面使用了多种光照效果(例如法线贴图和平行贴图)。你是如何处理平行贴图的交界和曲面变形问题的?
在高端显卡中,我们通过逐像素而不是逐向量进行可见向量计算(eye vector calculation),以避免贴图扭曲的问题。有些贴图扭曲是无法避免的,无论使用何种显卡都无法解决。不过通常这种问题不明显,除非你将镜头非常贴近贴图观察。我们的艺术家很快掌握了哪些效果看起来好,哪些效果不好。T形贴图在进行任何光照计算时总是存在问题,因此我们在艺术设计阶段通过避免制造这些问题来解决。
《地狱》似乎是首款在发售时就具备完整HDR特性的游戏。你能谈谈你们的具体实现方法吗?是否使用了浮点混合(fp blending),可以在像素渲染下进行混合吗?《地狱》使用了浮点贴图吗?
在《地狱》中,HDR技术采用了浮点贴图以提升精确度,并且还使用了浮点缓存混合。由于我们的场景非常复杂,硬件需求会很高,如果在像素渲染阶段进行混合的话。
你们计划使用哪个版本的渲染引擎(Shader Model)?在最近的一次访谈中,你提到过使用渲染引擎3.0。你们是为了提升速度才使用3.0,还是利用了其中的特定功能,比如在顶点渲染中的贴图获取?
我们计划使用渲染引擎版本2.0到3.0。渲染引擎3.0的优势在于其编程可以使用分支和循环,尽管我们主要是为了提高效率。在3.0中,我们能够在一个处理阶段解决所有光照问题,包括混合物体的光照。
请分享一下在不同渲染引擎版本中实现相同效果的体验。
通常,我们最初会在脑海中以2.0标准编写渲染。在3.0版本中,由于能够提高效率,将不同处理过程合并,编写代码变得更加有趣。尽管有时我们需要做一些完全相反的事情,这很痛苦,但我们尽量避免这种情况。
从截图中可以看到世界的细节非常丰富,确保能见度显然至关重要。你们是否使用了什么先进的技术?例如入口裁剪?
我们主要依赖于LOD模型,当一个物体距离足够远或清晰度足够低时,会减少其面数,从而降低光照、几何和渲染负荷。我们还采用了简单快速的隐藏面剔除。重申,我们的目标是在不限制艺术家创作自由的情况下优化系统。
在之前的访谈中,你提到了使用多线程技术来加快新区域的加载速度。对此,你认为其他不那么显眼的硬件因素,比如内存速度、CPU L2缓存、AGP/PCIe速度,有多重要?
优化是一项综合性的任务。例如,我们花费了一些时间来优化代码以避免L2缓存丢失并提高效率。我们尝试在每种硬件上进行优化,整体速度因此可以得到显著提升。
我们很好奇平均每个屏幕包含多少三角形和顶点?游戏中大约会有多少顶点渲染,你们平均使用了多少像素和顶点渲染指令?
我们的三角形和顶点数量略高,但依然在微软和主流显卡公司的下一代开发推荐值的范围内。关于像素渲染,如果考虑到不同显卡组合带来的变化,可能会出现上百种情况。通常情况下,主要的渲染效果大约有25种。针对不同的渲染模型,我们使用了不同数量的指令,因此在高性能显卡上,低端的2.0渲染和3.0光照渲染可以非常紧密地结合在一起。