App下載

雷神之錘3 的源代碼查看

猿友 2017-12-21 17:57:19 瀏覽數(shù) (11958)
反饋

Quake-III Arena (雷神之錘3)是90年代的經(jīng)典游戲之一。該系列的游戲不但畫面和內(nèi)容不錯(cuò),而且即使計(jì)算機(jī)配置低,也能極其流暢地運(yùn)行。這要?dú)w功于它3D引擎的開發(fā)者約翰-卡馬克(John Carmack)。事實(shí)上早在90年代初DOS時(shí)代,只要能在PC上搞個(gè)小動(dòng)畫都能讓人驚嘆一番的時(shí)候,John Carmack就推出了石破天驚的Castle Wolfstein, 然后再接再勵(lì),doom, doomII, Quake…每次都把3-D技術(shù)推到極致。他的3D引擎代碼資極度高效,幾乎是在壓榨PC機(jī)的每條運(yùn)算指令。當(dāng)初MS的Direct3D也得聽取他的意見,修改了不少API。

最近,QUAKE的開發(fā)商ID SOFTWARE 遵守GPL協(xié)議,公開了QUAKE-III的原代碼,讓世人有幸目睹Carmack傳奇的3D引擎的原碼。這是QUAKE-III原代碼的下載地址:

http://www.fileshack.com/file.x?fid=7547

(下面是官方的下載網(wǎng)址,搜索 “quake3-1.32b-source.zip” 可以找到一大堆中文網(wǎng)頁的。ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip)

我們知道,越底層的函數(shù),調(diào)用越頻繁。3D引擎歸根到底還是數(shù)學(xué)運(yùn)算。那么找到最底層的數(shù)學(xué)運(yùn)算函數(shù)(在game/code/q_math.c), 必然是精心編寫的。里面有很多有趣的函數(shù),很多都令人驚奇,估計(jì)我們幾年時(shí)間都學(xué)不完。在game/code/q_math.c里發(fā)現(xiàn)了這樣一段代碼。它的作用是將一個(gè)數(shù)開平方并取倒,經(jīng)測(cè)試這段代碼比(float)(1.0/sqrt(x))快4倍:


w3cschool官方公眾號(hào):w3c技術(shù)教程,每天分享各種技術(shù)干貨以及有趣的科技新聞。


0 人點(diǎn)贊