但游戏不一样。
只要玩家的肉眼看着是那么回事,那就完全没问题。
“所以我们就需要请出计算机图形学帮一点小忙了。”
卡马克是编程天才,这部分才华溢出了一点,让他在图形学领域也有了不菲的成就。
可他到底是自学成才的车库奇才,并不是真正的科班出身。
在面对一些经典图形学问题时,他总会靠自己的实力强行大力出奇迹。
虽然有的时候能带来惊喜,顺手再拿一堆奖,再帮图形学界解决一些千古难题。
但很多时候,这种性格也会让他很容易重复造轮子,在没必要的事情上浪费精力。
“高洛德着色法(Gouraud Shading)。”
计算机三维图形学的世界,存在着三种主流的着色方案。
第一种,也是以当下图形性能条件最靠谱,也是最简单最传统的方案,平面着色(Flat Shading)。
由于在计算机的世界里,三维物体由大量的三角片构成的关系,着色方案也可以非常容易地设计。
在上色的时候,整个三角形只计算一次颜色,整个三角形都应用同一个颜色。
这种方案的好处是显而易见的,速度奇快、性能开销奇低无比。
但缺点也很明显,同时也是目前卡马克始终找不到对策的原因。
僵硬。
颜色之间缺少过渡,整个3D物体的棱角感非常明显,根本不像一个平滑的物体。
诚然,这一点可以通过增加面数得到改善。
但这种大力出奇迹的绿皮思路,显然让这些图形学家们非常不爽。
于是在70年代,有两位奇才站了出来,分别拿出了两套解决方案。
亨利·高洛德提出的高洛德着色法,与裴祥风提出的Phong着色法。
高洛德的思路是直接通过面的顶点进行计算,随后面上的每个像素都做一个过渡插值。
这样整个面上的颜色就一定是流畅的渐变。
Phong要更加极端一些,直接每个像素都进行完整的着色计算,结合光照、材质等因素,综合计算。
相较下来,不难发现Phong一定是渲染效果最优秀最漂亮的那一个。
但它也不是完美的。
就像平面着色牺牲了视觉效果换来了绝对的速度优势那样。
Phong便是牺牲了性能换来了绝对的画面。
它只适合给影视行业等高度依赖精度,又不需要实时计算的场合使用。
而高洛德……
它则是从这两者之间取得了一个折中点。
较低的运算强度,却能换来比平面着色强得多的效果。
面数没有增加,整个模型却一下子就像那么回事了。
这就足够了。
骗得过玩家的眼睛就已经足够了。
林立新坐到开发站跟前,上手迅速修改了一下着色器的代码。
重新编译运行。
原本屏幕上那坨面数有限的模型,一下子便光滑了起来。
高端的开发者,往往能够神不知鬼不觉地偷工减料,为显卡减少负担。
“原来如此……”
卡马克扫了一眼源码,便立刻Get到了这套策略的精妙之处,
“逆向思维……吗?”
他念叨着,像是忽然想明白了什么,随即眼神一亮,
“啊!这倒是提醒我了,我突然有了一个好主意。”
“怎么?”
“山姆昨天问过我,他想知道有没有什么办法在不确定生物会长什么样的情况下,为它设计灵活拟真的运动动画。”
卡马克兴奋地说道,迅速打开文档将自己脑袋里的思路记录下来,以防这些灵感稍纵即逝,
“林你知道的,咱们以前做3D动画,都是用现有的骨骼数据去做。”
“的确,但这次咱们的骨骼是后确定的。”
“对,所以没有办法预先为生物设计好移动方式,因为我们甚至都无法确定它的腿长在哪里,甚至无法确认它有几条腿。”
卡马克点点头,这个问题同样困扰了他有段时间了。
但刚才林立新的话给他提了个醒。
有的时候,解决问题其实只需要换个角度去思考,去逆向思考一下就成了。
【Inverse Kinematics(逆向运动学)】
他将上面的字展示给林立新看:
“我们不去控制肢体如何运动,而是告诉肢体它要放在哪。”
按照常理来说,一个抬腿动画的确立应该是个顺序的链条。
大腿率先移动,在骨骼系统的带动下,膝盖、小腿、脚脖子以及脚丫子都会被牵引着发生移动。
这就是典型的正向运动学。
但IK,则是完全换了一种思路。
它先确定最终的落点。
通过落点去倒推肢体该如何运动。
不论地面长什么样,不论这个生物长什么样。
它的腿永远都能很好地贴合在地面上。
当然,代价则是处理器的开销也会大一些。
“这套系统甚至能支持多组腿一起移动!而且能极大地减少咱们的资源开支。”
既然一切都是程序实时计算的了,那他们当然也不需要把这些东西存进光碟里。
3D时代有个让所有厂商都头疼的问题。
随着角色越来越多,场景越来越恢弘,动画资源也在跟着不断膨胀。
即便是光盘这种放在几年前还是外星科技一般的容量,如今也开始有些捉襟见肘了。
尤其是《孢子》这样一个玩家可以发挥无穷想象力的作品。
理论上来说,无限的组合等同于无限的动作,也就等同于无限的开支。
可在程序化后,他们便可以像做2D游戏那样,只做L2D拆分,大大节约容量。
当然,也节约了工时。
毕竟再也不需要动画师去一帧一帧地K动画了,只要程序员把规则写好,剩下的一切,游戏自己都能处理好的。
“将IK逆向动力学跟刚才的高洛德着色法结合在一起,根据参数化的脊柱节点动态生成Mesh并绘制蒙皮,用IK骨骼控制步态,再加上威尔的JAZZ人工智能架构……”
卡马克兴奋地在文档里整理着。
一个崭新的世界此刻似乎已经向他敞开了。
一个完全程序化的,完全自由的世界。
也是一个拥有无限可能的无限大的世界。
如果程序化沙盒这个思想进一步延伸……
第687章 我们鼓励玩家慵懒
感恩节。
圣诞季前的最后一个大型节日,也是年关将至的信号。
在这一天,美国佬们会阖家团圆,跟家人们聚在一起,烤上一只塞满填料的大大的火鸡。
不过除此之外,感恩节在商业领域往往也是一个非常重要的节点。
通常来讲,感恩节被定在了每年十一月的第四个星期四。
而黑色星期五,则是感恩节后的首个星期五。
在这一天,上至七老八十的老头老太太,下至未成年的小朋友,都会齐聚各大超商,准备开启今年的抢购。
不单单是因为商家会搞促销活动。
更是因为忙碌了一整年,终于有了这难得的圣诞假期。
抠抠搜搜憋了一年的钱,都会在这一天彻底奉献给消费主义。
没有任何一家企业会错过这重要的节日。
即便是对游戏界来说也是一样的道理。
按照往年的数据推算,整个圣诞购物季一个月的时间,能贡献一整年中好几成的销量。
比起淡季,平均销量甚至能多出一倍。
就像那些超商将自己的降价名录作为商业机密,保存到黑五前的最后一刻那样。
游戏厂商们往往也会选择在这一天才正式公布自己今年的收官之作。
GAMENOVA也是如此。
黑色星期五正是他们发布宣传片和上架新货的日子。
不过今年的安排略有了些不同。
因为第五世代机种NovaFusion的关系。
今年的销售从感恩节便要开始了。
……
“女士们先生们,欢迎回到GAMELINE99,我还是你们最爱的主持人麦考伊。”
“我是瑞贝卡。看看时间,相信大家现在都已经跟家人团聚了吧?或许正在烤箱前等着火鸡出炉,也可能已经坐在了餐桌前,在看我们的节目。”
“是啊瑞贝卡,可咱们两个却要在这里主持节目,你觉不觉得咱们应该找老大要求加薪?”