第303章 一行代码让图灵奖大佬骂娘(3/5)
「gamenova在加密上一直都做的很好,想要啃《生化危机》的源码来搞清楚背後的奥秘恐怕是不太现实。」
「不过————」
伊万顿了顿,在自己的pc上轻敲几下,「我们可以从gamenova已经开源了的《doom》和novaengine的技术实现来倒推。」
「那太好了,你快点开始吧。」
sun的总裁显然已经有些按捺不住了。
越是拖延下去,sparc的问题就会越严重。
这可真是伤筋动骨的大事儿。
如果能靠着这次机会抄明白gamenova的作业,说不定还能有一战之力,弯道超车。
等到他们明年的秘密武器64位0.
18微米处理器uitrasparcii走出实验室,有望一鼓作气干掉整个市场。
啃源码并不是件多轻松的事情。
哪怕是基於n语言编写的易读性极强的代码,哪怕伊万本身就是这方面的专家,这也耗费了他大量的精力。
「怪了。」
伊万眉头紧皱。
gamenova可以说是业界里最不讲道理的公司了。
它的每一步实现都在自己的预期之外。
但偏偏它还就能用这种完全非主流的方式做到自己想做的一切。
还比其他循规蹈矩的人做的都要好!
太特麽气人了!
「怎麽?」
——
「平方根。」
伊万缓缓吐出两个词儿,而後便陷入了彻底的沉默。
不管是电子游戏还是商务软体之中,都存在着一个看似不起眼的算法函数。
sqrt,也就是求平方根的函数。
计算角色、物件、场景中的空间距离、运动状态等各种需求,都需要频繁调用平方根的计算。
可以说这玩意儿就是3d游戏的基石。
而它往往也是计算机中运算开销最大的函数之一。
因为计算机底层的那些全加器根本无法理解除法。
加法是处理器的底层逻辑。
而自从有了补码之後,减法也可以被视作是一种加法,就像是1—1=1+(—1)。
至於乘法,也同样存在大量的高效优化算法,哪怕是仅仅粗暴地重复加法,也可以轻松实现。
唯独除法,想要实现它,复杂度比其他三种运算加在一起还要多。
计算一次除法的耗时甚至能达到乘法的数倍。
而在3d环境之中,浮点小数的出现以及各种频繁的空间计算让除法的调用变得难以避免。
平方根运算的实现思路与除法高度相似,这就让处理器在面对它们时不堪重负。
这也是3d一直难以推广的主要原因。
本章未完,请翻下一页继续阅读.........