那些64k的3D動畫怎麼實現這麼大的壓縮率的?

http://www.verycd.com/topics/99328/


這是我做的 75kb 的 demo,心之印記,算是國內做的比較好的了吧。

KXXT.rar_免費高速下載

後來一個國內做這個的先輩把我的作品放在了著名的 pouet 網站上:

http://www.pouet.net/prod.php?which=30615

有老外的70多條評論。

當時是高一(2005年),通過使用 3dmax 做的動畫 《勇往直前》獲得保送資格後,有些厭煩其中複雜的製作流程和有損的壓縮質量了,碰巧在當年的盜版光碟《3dmax 5 英文版》中,找到了一個文件夾《世界頂級動畫大師製作的動畫》(類似是這個名字),文件夾中有 幽靈古堡.exe(也就是最有名的 fr-08),火域幻境.exe,愛之記憶.exe 等。

有一天,我在 fr-08 結尾彩蛋中發現了製作團隊是 farbrausch,後來找到了製作工具:werkkzeug(德國,縮寫 wz),然後利用 wz 製作了這個動畫(心之印記,kxxt)。

wz 主要依賴於 DirectX 和彙編,所以一張軟盤(1.44MB,真的可以裝很多 64 KB 的 demo 或者 intro,其實也就是 20個),其中的語音合成是用的 v2m,可以把帶人聲的音頻壓縮到20 KB

這是 wz 的 github 鏈接:

farbrausch/fr_public · GitHub

wzman/werkkzeug4CE · GitHub

那個 96KB 的 kkrigger 使用帶交互功能的 wz3 製作的,我之前也想用 wz3,後來沒有幫助文檔,猜測其中的 operation stack 功能實在是太困難了。

也是因為這個,我一個高一的學生決定振興中國的 3D 動畫,因為 2005 年時的中國三維動畫真的是不忍直視。( 2013 年的春晚我能指出其中的一個動畫特效是直接用的 particalillustion 的特效。)因而選擇了軟體學院。希望能做出 NB 的動畫製作軟體,NB 的特效。我確實覺得,高中時在食堂圍觀的神六發射動畫還是比較挫的。

雖然後來暫時沒能繼續做下去,但也是人的一個未竟的夢了吧,希望以後能實現 ;)


64K視頻時通過CPU運算得出圖形,通過顯卡直接顯示,不是一般的取數據然後顯示

比如顯示一個三角形,只需註明位置,大小,顏色等少量信息,然後進過程序運算再顯示


過程生成,給個種子,後面動態生成


這種東西叫做DEMO 現在世界上還有一些DEMO大賽
普通的視頻是通過連續不斷地播放幀來實現動畫效果
而一幀的大小就已經達到幾M
所以這些視頻文件非常大
而DEMO裡面的3D畫面都是即時CPU演算的
有一個不成文的規定
一個DEMO通常只有64K大小
而且DEMO自帶解壓程序
在程序運行的時候自動解壓
另外一個減少容量的方法就是貼圖的復用
一個貼圖多次使用
你說的那個彗星撞地球我也有
你要的話我可以傳給你
其實並沒有那麼好看 紋理也很粗糙
細心的話會看到 許多地方貼圖都是一樣的
另外一個幾分鐘的DEMO可能需要10個人工作一個月才能做出來
不是簡簡單單壓縮視頻就完事的
實際上,Demo程序是通過直接對顯卡進行操作和計算,其中只包含一些關鍵幀,而中間的實現效果則完全通過演算法演算出來,而且,通常情況下,Demo裡面的圖形都是一些比較規則的多邊形,裡面的圖案組合往往可以重複利用,這樣就大大減少了整個程序的體積。
當然,縮小體積還有最主要的一步,那就是壓縮。所有Demo程序都利用了另一種名為UPX的壓縮演算法,這種壓縮演算法效率很高,甚至可以達到10%壓縮比。在Demo程序運行之後,它便會自動進行解壓行為,將整個映像解壓到內在中,然後才開始運行。

http://zhidao.baidu.com/question/33281399.html?device=mobilessid=0from=1307fuid=0pu=usm%400%2Csz%401321_1004%2Cta%40utouch_2_4.4__bd_page_type=1baiduid=EDA6A72681AF1D982679422302DB6EE2tj=www_normal_4_0_10


好像是大量調用directX的資源庫


就動畫文件本身而言,3d動畫可以比2d動畫小的多,因為3d動畫實際上可以以矢量圖形式表示,而2d動畫則是完整的點陣代碼。


即時演算,不是CG


推薦閱讀:

為什麼九宮格順或逆時針任選 6 個數字都能被 37 整除?
怎樣看待b大巔峰之作『LiFT深度學習框架』無人問津?
北大裝逼哪系強?
天河二號對人工智慧的行為模式開發上有什麼作用?
2016網易機試編程題中的字元串問題?

TAG:動畫 | 演算法 | 計算機 | 計算機科學 |