“程序最優(yōu)化的結(jié)果,充分發(fā)揮電腦硬件的極限潛力,處處體現(xiàn)著DEMO制作者高深的編程功底
瑞典有一個(gè)著名DEMO團(tuán)隊(duì)TheComputerCnonoad
DEMO的核心,其實(shí)就是壓縮和解壓縮算法,你看到畫(huà)面最初始的時(shí)候那個(gè)進(jìn)度條了吧,那其實(shí)就是個(gè)解壓縮的過(guò)程,這些程序都是自解壓的。要達(dá)到這樣的效果,這些程序通常都要求用匯編語(yǔ)言編寫(xiě),因?yàn)橹挥袇R編語(yǔ)言才能達(dá)到這樣最優(yōu)化的效果,充分發(fā)揮硬件的威力。另外DEMO往往要進(jìn)入一個(gè)特殊的繪圖模式,這個(gè)模式稱為X模式。剛剛看到的那些非常炫的3D效果,其實(shí)都是針對(duì)顯卡進(jìn)行實(shí)時(shí)編程,只有這樣才能極大地節(jié)省體積。還有,你們注意到DEMO里面的那些畫(huà)面了沒(méi)有,如果觀察夠仔細(xì),會(huì)發(fā)現(xiàn),里面的很多東西其實(shí)都是重復(fù)的,由同樣的幾何圖形組成,重復(fù)的東西往往最好壓縮,因?yàn)橹灰獎(jiǎng)澇鲆粔K地方保存那個(gè)圖形,其他重復(fù)的,只要再調(diào)用那個(gè)圖形就行了,音樂(lè)也是這樣,翻來(lái)覆去,老是那么幾個(gè)音調(diào)……”
文件列表 精品3D作品
........../3D.exe
........../64K
動(dòng)畫(huà)大賽作品之一:幽靈古堡.exe
........../64K
動(dòng)畫(huà)大賽作品之三:火域幻境 .exe
........../64K
動(dòng)畫(huà)大賽作品之二:第七天堂.exe
........../64K
動(dòng)畫(huà)大賽作品之五:死亡陰影.exe
........../64K
動(dòng)畫(huà)大賽作品之六:金屬迷城.exe
........../64K
動(dòng)畫(huà)大賽作品之四:愛(ài)之記憶.exe
........../flybye.exe
........../fr-030 candytron party.exe
........../kkino64.exe
........../ltoo.exe
........../《彗星撞地球》.exe
........../光影.exe
........../卡通.exe
64K 3D
動(dòng)畫(huà),檢驗(yàn)機(jī)器顯卡及內(nèi)存性能
這三個(gè)3D
動(dòng)畫(huà)都在64K左右,然而卻都不是省油的燈。運(yùn)行起來(lái)都要吃掉幾百M(fèi)
的內(nèi)存。在購(gòu)機(jī)是可以用它們檢驗(yàn)機(jī)器性能。特別是第三個(gè)
動(dòng)畫(huà)“彗星撞地球”,
即使你的機(jī)器可以運(yùn)行魔獸,但也不一定能流暢的運(yùn)行它。
注:系統(tǒng)必須安裝有Directx8.0,因?yàn)?strong>動(dòng)畫(huà)支持DX8.0加速。 機(jī)子太老的就別打開(kāi)了,小心cpu和顯卡狂飆!
你相不相信64K大小,竟然看到這么久的三D精彩
動(dòng)畫(huà),而且質(zhì)量會(huì)如此的高,不信就下來(lái)看看吧!
64kb=1.6G是個(gè)什么概念?看看就知道。懂E文的可以看到最后的介紹里面提到有1.6g的數(shù)據(jù)包含其中。其實(shí)還有很多不過(guò)這個(gè)是最好的。以后游戲要是這樣就好啦??赡?Mb的游戲就可以玩N個(gè)鐘頭啦。期待…………
國(guó)外的0DAY組織經(jīng)常自制DEMO,完全用源代碼編寫(xiě),用來(lái)炫耀本組織技術(shù)。而各組織之間的競(jìng)爭(zhēng)也會(huì)通過(guò)全球DEMO大賽來(lái)進(jìn)行,比賽規(guī)則是最大的DEMO不超過(guò)65K!這幾個(gè)作品中最小的一個(gè)只有6KB!每個(gè)DEMO都聲色俱全,效果震撼,令人驚嘆不已!
Demo是怎么做出來(lái)的:
實(shí)際上是這樣的, 小組的程序員用他的業(yè)余時(shí)間(也可能是工作時(shí)間)寫(xiě)一個(gè)程序框架, 用來(lái)同步顯示和音樂(lè), 當(dāng)然, 包括特效的部分. 這樣一個(gè)程序通常由匯編, C/C++, Pascal等寫(xiě)成, 然后為了Demo運(yùn)行的更流暢, 一些代碼要用匯編重寫(xiě). 最后, 手繪的圖形, 美妙的音樂(lè)通過(guò)精心設(shè)計(jì)的代碼組合起來(lái), 又一個(gè)Demo出現(xiàn)了!這是Demo的編程部分. 圖形部分當(dāng)然由美術(shù)家來(lái)完成. 美術(shù)家的工作包括3D建模, 貼圖制作(這通常是一件逐象素的描繪工作), 設(shè)定虛擬攝像機(jī)的運(yùn)行路徑以供程序員使用之類. 音樂(lè)家將完成音樂(lè)的創(chuàng)作和制作. 大多數(shù)情況下,這是一種叫做Module的音樂(lè),使用一種叫Tracker的程序完成. Module與MIDI有點(diǎn)類似, 但Module使用自己的樂(lè)器采樣而不像MIDI使用的是聲卡或軟波表的樂(lè)器, 因此Module可以在所有硬件平臺(tái)上獲得同樣的播放效果,而且, 文件卻很小巧. Moudule允許對(duì)聲音完全的控制, 對(duì)應(yīng)著, 制作的難度水平. Module文件后綴通常為mod, stm, s3m, it, xm之類, 這些格式的音樂(lè)大都可以用Winamp來(lái)播放, 但有更專業(yè)的Module播放器如: ModPlug Player(Tracker/Plugins too)等等. 另外, 越來(lái)越多的音樂(lè)開(kāi)始使用MP3格式. 請(qǐng)?jiān)L問(wèn)
http://www.maz-sound.com/以獲得Module的播放制作工具.由于種種限制: 比如平臺(tái)性能, 文件大小等, Demo的制作需要很高的技術(shù)水平: 你知道你能在64k大小的程序里放些什么!!
調(diào)用Opengl或者DX。精心的編寫(xiě)代碼和數(shù)據(jù)。然后做一個(gè)類似UPX的壓縮殼。壓縮容量。
簡(jiǎn)單地說(shuō)就是生成技術(shù),包括紋理,模型,音頻采樣都是由少量參數(shù)計(jì)算生成的,很有規(guī)律性,所以一般只能演示抽象,自然的
動(dòng)畫(huà).
匯編幾乎沒(méi)必要,即使有一點(diǎn),內(nèi)嵌到VC里就足夠
也些也用專用的Loader.根據(jù)自身的特點(diǎn),定制一個(gè)壓縮方案。來(lái)達(dá)到最佳的壓縮效果。
64K的
動(dòng)畫(huà),所高深不高深,不過(guò)真的要做還是有一定的難度。
動(dòng)畫(huà)無(wú)非就是調(diào)用opengl或者Dx來(lái)畫(huà)點(diǎn)線面和貼圖。64
動(dòng)畫(huà)里面的貼圖都是很簡(jiǎn)單的。有些甚至沒(méi)有貼圖。比如我要畫(huà)一個(gè)房子。就幾行代碼。
偽碼類似下面:
GLBegin(GL_PLOY)
Vertex(x,x,x)
Vertex(x,x,x)
Vertex(x,x,x)
GLEnd
其實(shí)看起來(lái)特殊形狀的物體也是靠技巧用少量數(shù)據(jù)生成的.
模型都是一些基本形狀(方形,球形,四面體等)用sin,cos等函數(shù)變換一下頂點(diǎn)坐標(biāo)就能把模型復(fù)雜化,運(yùn)氣好就能得到像樣的模型.紋理也用簡(jiǎn)單的p=f(x,y)函數(shù)算出來(lái)每個(gè)像素的顏色值.不同紋理直接再融合一下就能變出很復(fù)雜的紋理.音頻采樣也是同樣道理.幾個(gè)函數(shù)的代碼量當(dāng)然比幾幅紋理的數(shù)據(jù)量少得多.
國(guó)外電腦狂人大作!3D美女演示
動(dòng)畫(huà),在結(jié)尾處會(huì)出現(xiàn)一段字幕,說(shuō)明
動(dòng)畫(huà)所包含的內(nèi)容,如178兆多媒體紋理、159MB的wave文件、12條音軌、8億5千萬(wàn)波樣等。
可以直接點(diǎn)擊運(yùn)行欣賞,ESC退出,小的可憐,大得可怕! 按Win鍵退出
在網(wǎng)上混跡多年的朋友們可能或多或少地聽(tīng)說(shuō)過(guò)這些只能用奇跡形容的3D Demo程序吧:
不超過(guò)64K的體積
據(jù)說(shuō)是為了展示能力而做的限定,Demo的大小不能超過(guò)64K;
華麗的3D
動(dòng)畫(huà) 語(yǔ)言不能描繪出令人驚艷的
動(dòng)畫(huà)效果,只能親自去感受了
全程音效
雖然不能說(shuō)仙樂(lè),也還能入耳
建議大家百度 64K 動(dòng)畫(huà) :)