上个礼拜跟一帮子我膜拜已久的程序兄弟瞎扳,提劲说弄个大型的smartshader的原创技术文章,把国外的次世代从xb360,ps3,pc尽数列举出来,解密一下这些游戏在图形学角度的一些技术.后来一想,人蛋曼和老荻他们水平都比我高,人家都没吱声,如果我要这样瞎闹那就是半罐水了.而且在这10月换季之时我又患上流感,这事也就搁浅了.
虽说我很不幸正在流感中,但是我一直坚持尽量在帮助别人凡是我看到的问题,不是炫耀自己是砖家,也不是无聊瞎忙,就是实在的帮助它人.坚持我为人人
好的,让我们回到正题上,我们简单来解密一下星际2的原形,我们基于大家耳熟能详的wc3进行对比来解密
1,sc2的碰撞ai是一大特色,该ai是导航网格寻路和2d物理的组合算法,它的主要表现形式是,一只小蟑螂从一队密集小兵中穿过,这些小兵会"很物理的让路"(不知道这种功能术语怎么说?,2d物理+导航网络).导航网络本身是专业针对3d游戏的寻路算法,它最复杂的地方在于性能优化时我们需要裁减合并这些网络面片,做好导航网络挺不容易.而在其基础上又是按2d物理在进行排队处理.记得若干年前我也想到过这类处理算法来应用进mmo里面,当时是理论上通过,但是被迫很无奈的没有这么多时间.
sc2的碰撞ai在中国其实可以做得更好,更快,提议几个制作方向:cuda和opencl是可以直接编译c代码的,nvcc之类,可再开发的2d物理引擎我比较推崇box2d.
2,sc2的渲染流程不可不说,整个管线的结构功夫不可说不细致,总管线是一套smartshader(4大功能集成shadowmap+bump diffuse+reflection+projected texture),局部管线环节再才是延迟着色那套post effect,2d hdr,weather等等效果(感兴趣可以自己去翻sc2的这些局部shader查阅).在500瓦的pc显卡上可以跑60帧,在几十瓦的笔本显卡上也可以跑上60帧,兼容性和性能非常之好.恩嗯,我们国内的图形学砖家,在商业化图形学领域,制作sc2是没有任何问题的.
在我们今天制作次世代图形效果中,主流模式都采用自主管线流程,要做好这些自主流程管线,因为知识面问题,个人感觉应该都是曾经在做固定管线流程的老程序写的
3,sc2的编辑器,联网,ui,美术,数值,文学内容等等就不一一讨论了,这些东西国内水准轻松超越它.
用对比wc3的方式简单分析了一下sc2的程序框架,就算仍个石头出去,会有个玉儿回来吗?
哇,9点了,该吃早饭开始工作了.88 |