【加劉景長的回答(156票)】:
這種動畫稱之為DEMO(demonstration)。它跟一般的影視視頻不同,不是直接靠播放器調(diào)用視頻解碼器解析。而是另外執(zhí)行的EXE文件調(diào)用硬件即時演算的。
Demo程序是通過直接對顯卡進行操作和計算,其中只包含一些關(guān)鍵幀,而中間的實現(xiàn)效果則完全通過算法演算出來,而且,通常情況下,Demo里面的圖形都是一些比較規(guī)則的多邊形,里面的圖案組合往往可以重復利用,這樣就大大減少了整個程序的體積。 這種影像制作工具用werkkzeug。
制作完成后,需要調(diào)用UPX (the Ultimate Packer for eXecutables)算法加殼壓縮。這個是專門拿來壓縮可執(zhí)行文件的,通常壓縮過文件體積縮小50%-70%。(我試過最高壓縮率是原體積8%,應該還能更低)
這片子采用了使用簡單的幾何圖形(如正方體、立方體、圓柱等)進行組合,通過匯編語言調(diào)用M$ DirectX引擎的核心代碼庫來建立對象架構(gòu)、三維空間位置、運動軌跡及材質(zhì)信息。程序在運行時由CPU讀出這些信息給DirectX渲染引擎生成三維立體的對象及其動畫。它不同于其它的3D動畫多采用3D Max、MAYA那些建高面數(shù)模型的軟件,制作出比較復雜的場景再進行貼圖;而是從一開始就注意了“節(jié)省”,采用最簡單的模型、運用不斷優(yōu)化的算法,組合出最復雜的效果.做紋理并貼圖:同制作場景的思 路相同,也盡量采用最簡單的方法制作出自己喜歡的紋理,在它的最終版本中,采用了66幅256×256點大小的32位紋理,未壓縮前紋理大小為16MB。里面還有一段要是正常輸出有159MB的音樂,是使用LOGIC AUDIO制作出來的。音樂包含兩個部分,一個是Loading Music,另外一個是Main Music。
每年都有一個叫“International Demo Competitions”國際DEMO編程動畫大賽的比賽。專門有一些人做這些類似影像的。
由于一些神秘的技術(shù)技巧我們不可能完全得知,所以要達 到像國外的 SceneDemo 專業(yè)團隊的水平那也是相當有難度的。
有興趣想做做類影像的可以看看《Texturing and Modeling - A Procedural Approach》這本書。里面詳細的介紹了各種過程紋理和造型技術(shù)。 介紹的 Metaball 技術(shù)就是其中的一種,在早些年的 Demo 中經(jīng)常能看到 Metaball 技術(shù)的展示:幾個球或者其它形狀的物體互相融合和侵徹, 可以生成極為復雜的新造型。
雖然最近幾年的 64K Intro 已經(jīng)幾乎不使 用像 Metaball 這樣的平民技術(shù)了,hacker 似乎總在追尋更強大的 過程紋理造型方法和更酷更眩的渲染技巧。而 07 年的 Best 64K Intro 似乎是完 全在炫耀作者的著色器編寫技術(shù)。 但是 Metaball 卻并不是像雁型陣一樣過時了,它甚至在 2D 圖形領(lǐng)域也得到了廣泛的應用。
Metaball 的原理 Metaball (元球) 技術(shù)是由 Blinn 于 1982 年開發(fā)一種適用于建立可變形表面的技術(shù)。此技術(shù)利用 Metaball 建立能量場,然后通過標量域的等勢面來建立3D 模型來表現(xiàn)軟體或者隱式曲面。 簡單的說, 就是在空間里布置一些 Metaball, 每個 Metaball 都有一個能量場,通常用勢函數(shù)來表示。設空間里均布著無數(shù)個點。在其中某一點,它的能量為每個 Metaball 對它的勢的疊加。然后在空間的所有點找出勢能相同的點,就得到一個由這些點組成的曲面。至于勢函數(shù)的選擇就很多了, 有指數(shù)函數(shù), 分段多項式函數(shù)等等……算了不細說了,再說又沒完沒了。
這里放出一個97年的Mekka ’97 4K Intro比賽的一等獎作品代碼。整個程序全長4095字節(jié),其中包含133字節(jié)的自解壓程序,未解壓的程序長4782字節(jié)。三維場景包含144個立方體,367個面,362個點,15個不同的64*64的紋理,還有一段音樂…… 鏈接http://www.jrmos.com/listpro.asp?id=700
至于是如何吧rar改成圖片。
方法1:
開始---運行--CMD
在光標所在地方輸入 copy /b E:2.jpg+E:1.rar E:output.jpg 然后回車。
(注意空格與半角全角,建議粘貼復制)
然后:會出現(xiàn):
”E:2.jpg
E:1.rar
已復制 1 個文件?!?/p>
這樣就完成了文件的合并。將jpg文件與rar文件合并起來了。(注意如果圖片2格式是jpeg,則需在上述命令輸入jpeg,否則會出現(xiàn)找不到指令文件),合并后的文件在E盤,名字為output.jpg
我們把這個圖片由.jpg改成.rar結(jié)尾以后可以發(fā)現(xiàn)仍然可以解壓縮得到我們的文件,改成jpg依然是一張圖片。
方法2:
1.新建文件夾。
2.在文件夾里,新建文本文檔
3.輸入 copy/b 2.jpg+1.rar =output.jpg (注意空格與半角全角,建議粘貼復制)
其中圖片與壓縮包名不能改“output”可改。
4.保存,改文件格式 .txt 為 .bat。
5.將1.jpg和1.rar都放置在bat文件所在文件夾,運行。
6.會在bat文件所在文件夾內(nèi)生成output.jpg
方法3;
直接下載 JPG+RAR合并器 這類軟件
附帶一提:電腦游戲能用到類似這種技術(shù)么?附帶一提:電腦游戲能用到類似這種技術(shù)么?
能,《毀滅殺手》(kkrieger)。95KB。由.theprodukkt小組開發(fā),不過這個主體由C++完成,之間貫穿少量匯編語言。
下載地址:http://pan.baidu.com/s/1i3FW2Tf
參考資料
【2】http://baike.baidu.com/view/7114230.htm?fr=aladdin
【3】計算機真實感圖形的算法基礎. 彭群生著
【Dreamer的回答(4票)】:
一樓很專業(yè),但是寫的有點復雜
簡單點說就一句話,因為它不是電影,是用來生成電影的公式。
rar可以被藏在圖片里。
【知乎用戶的回答(0票)】:
至于哪種直接操作顯卡進行畫圖的demo程序,樓上說的很專業(yè)了,我說一下打包的問題 其實 可以直接把 這種exe和jpg使用rar壓縮成rar(注意這里選擇存儲模式),讓后你可以修改后綴,如果想顯示圖片就改為jpg 如果想運行程序就改為exe。
【xpoy的回答(0票)】:
研究看看,待編輯
【歐陽思七的回答(0票)】:
山脈什么的可以用分形算法算出來.大樓就是多邊形.地球就是球形. 感覺是各種公式集合.
百度分形就可以看到很多 2D 3D的分形圖片了.再著色一下就很漂亮了.
原文地址:知乎