第三十九章 引擎的降维优化
    十一月底,寒流南下了。深圳的气温一夜之间跌到十度以下,创新大厦的中央空调开了暖风,但五楼东侧的玻璃房里还是冷——不是温度低,是人心冷。

    屏幕上是一个刚跑起来的“山海”原型。画面很简陋:一片低多边形的草原,几棵纸片般的树,一个粗糙的3D角色站在中央。角色穿着基础布衣,手里拿着一把木剑。按下WASD,角色移动,动作僵硬,帧率显示:15 FPS。

    “这就是极限了。”阿坤的声音很疲惫,带着一种接近崩溃的平静,“在集显上,同屏十个角色,帧率就掉到15以下。如果是战场,一百人同屏,会卡成PPT。的网吧计算机,用的都是英特尔845G集显,显存共享系统内存,性能是现在测试机的十分之一。”

    测试机是浩宇刚采购的“高配”。这在2003年已经是顶尖配置,但跑“山海”原型依然勉强。。

    玻璃房里坐了十二个人,没人说话。只有机箱风扇的嗡嗡声,和窗外寒风的呼啸声。空气里有种绝望的气味,像手术台上医生宣布“我们已经尽力了”。

    陈默盯着屏幕上那个粗糙的角色,手指在桌下紧紧攥着。他画了三个月的原画,设计了几十种怪物,构想了宏大的世界观。但现在,这些可能都出不来——因为机器跑不动。

    赵永打破沉默:“能不能再降画质?把多边形数砍一半,贴图分辨率降到256x256,关掉所有光影特效。”

    “砍了,也救不活集显。”阿坤调出性能分析报告,“瓶颈在填充率。。这是硬件天花板,不是优化能解决的。”

    “那……放弃集显用户?”王磊试探着问,“只针对独显用户开发?的市场。”

    。”阿坤摇头,“林浩,‘山海’可能……做不了。至少,做不成3D MMO。。”

    所有人看向林浩。他坐在角落的椅子上,一直没说话,只是盯着屏幕,盯着那个帧率数字:15。眼神很空,象在看很远的地方。

    然后他站起来,走到白板前。拿起笔,写下一行字:“2003年硬件性能约束下的3D喧染解决方案”。

    “我们走错方向了。”他说,声音很平静,但每个字都象钉子敲进木头,“我们一直在想‘怎么让3D跑得更快’,但真正的方向应该是‘怎么让玩家觉得这是3D,而实际上不是’。”

    阿坤皱眉:“什么意思?”

    “意思是,我们要做‘伪3D’。”林浩转过身,看着玻璃房里的人,“不是真3D,是看起来象3D,用2D的技巧仿真3D的效果。2003年的硬件跑不动真3D,但跑2D绰绰有馀。《血战天下》万人同屏都不卡,因为2D喧染开销小。如果我们能用2D的技术,做出3D的体验呢?”

    “不可能。”阿坤脱口而出,“3D的内核是透视、光照、深度。2D怎么仿真?”

    “预喧染。”林浩在白板上画图,“把3D场景预先喧染成2D图片,分层存储。运行时,根据玩家视角,动态拼接这些2D层,制造出3D的透视感。光照也用预烘焙——把光影信息算好,存在贴图里。角色还是3D模型,但场景是2D图片。的喧染开销省掉了。”

    玻璃房里死寂。然后阿坤猛地站起来,椅子腿刮擦地板发出刺耳的声音。

    “这是欺骗!”他声音提高了,“预喧染的2D场景不能旋转视角,不能动态光照,不能破坏地形!这算什么3D?这是过场动画!”

    “但玩家要的不是真3D,是3D的‘感觉’。”林浩看着他,眼神很锐利,“阿坤,你玩过《最终幻想7》吗?”

    阿坤愣住。

    “1997年的游戏,PS1平台,性能还不如现在的集显。但它用了预喧染背景加3D角色的技术,让玩家觉得那是3D世界。玩家不能旋转视角,但他们会忘记这一点,因为他们被故事、战斗、探索吸引了。”林浩顿了顿,“我们要做的,是升级版。用动态图层实现‘伪旋转’,用多层叠加实现‘伪深度’,用精灵动画实现‘伪光影’。技术上,这是2D。体验上,这是3D。”

    陈默眼睛亮了:“就象……皮影戏?用多层剪纸,前后移动,制造立体感?”

    “对。”林浩点头,“场景分五层:远景(山、云)、中景(建筑、树木)、近景(路面、杂物)、角色层、特效层。每层是2D图片,但可以独立移动、缩放、淡入淡出。玩家移动时,各层以不同速度滚动,产生视差,感觉象在3D空间里移动。角色是3D模型,但在2D层之间行走,就象在舞台上。”

    阿坤不说话了。他走回座位,调出代码编辑器,手指在键盘上快速敲击。他在算。算喧染开销,算内存占用,算可行性。十分钟后,他抬头,眼神复杂。

    “理论上……可行。预喧染的场景图,一张1024x1024的PNG,压缩后只有200KB。一个地图用十张,也就2MB。内存占用是现在3D场景的十分之一。喧染只需要画2D精灵,集显

本章未完,请点击下一页继续阅读>>