引用:
作者d61s
看標題大家可能以為我LAG很久了現在才知道有這種東西,
其實我是想問關於這個老掉牙的技術問題,
前些年(10年前開始吧)網路出現了好多容量只有64K的3D動畫,
內容大概就像現在遊戲3D引擎展示那樣的一堆場景及物件、配樂在那邊run,
雖然不像現今DX11那樣還有甚麼複雜的貼圖及光源運算,
以當年我粗淺的接觸過3D動畫眼光來看,
一堆多邊形物件、不重複的貼圖、音樂、換個不停的場景,
怎麼看都不知道容量64K是怎麼做到的啊!
講難聽一點,多打個幾行程式碼就不只64K了,
就算偷偷用重複物件亂數一直loop,也好像很難...
這個熱潮後來也不了了之,我也沒鑽研下去,
所以想問問看大家在這麼多年後,那些動畫真正的原理及製作技術?
還有,為什麼固定是64K? 不是128K或32K?
爬文說是一些軟體破解小組展示他們的壓縮技術,
但....真的這麼"簡單"嗎? 我總覺得給想簡單了,
如果以這種...
|
這個叫做64k intro
簡而言之就是有一群天才
每年會聚集一次, 展示(炫耀)他們的新技術
雖然叫64k intro
但分別有32k, 64k, 128k等等的組別
不是你說的只有64k demo
至於檔案為什麼這麼小?
這是因為"它不是預先錄製的影片"
而是即時運算出來的動畫, 壓根就不是什麼"壓縮技術"
有學過3D的朋友們
都知道光是模型和貼圖就不止64k了
那麼他們是怎麼做出來的呢?
如果你仔細看demo中的模型
會發現大部分的模型都是幾何體
所以那些模型的vertex都可以用數學算出來
只有少部分不規則的模型
不得已才會直接儲存模型資料
2000年左右的64k demo
還滿流行一種叫metaball的技術
效果有點像兩滴水接近時, 會因內聚力而融合在一起
這種隨時都在變化的模型, 根本沒辦法預先把資料儲存起來
只能即時運算出來..
想當年跑這些demo我的電腦差點燒掉
關於metaball的演算法
http://www.cnblogs.com/atyuwen/arch.../metaballs.html
這篇文章寫得不是很清楚, 如果對metaball有興趣的朋友
可以搜尋"Marching Cube", 這是metaball的核心技術
嗯..說到哪了!?
或許會有人問模型貼圖怎麼辦
光是一張128*128pixel的jpg檔就要幾十k了
總不會也是"算出來"的吧!?
沒錯!!
貼圖也是算出來的
雖然texture的生成有很多算法
但最著名的就是perlin noise, 幾乎所有的64k demo都會用到
雖然perlin noise的演算法一言難盡
https://zh.wikipedia.org/wiki/Perlin%E5%99%AA%E5%A3%B0
最常的用法就是拿來生成像是"雲霧", "海水", "火焰", "木紋","大理石"等等的貼圖
但它也不是萬能的, perlin noise只能用來模擬大自然的貼圖
像是"磚牆", "書本封面", 這種人工的東西它算不出來的
所以這種"人工"貼圖, 也只能儲存一些部分的資料
利用"拼貼"或"無縫貼圖"的方式去做
然後是音樂, 一部好的動畫絕不能沒有音樂吧?
雖然我沒有涉及這部分, 但我猜應該是類似midi的技術吧
畢竟64k幾乎都是電子樂, 利用合成器都弄的出來
64k只要知道它的原裡, 其實沒這麼神奇對吧!?
以下我最喜歡的64k(大概也是最出名的)
[YOUTUBE]tCMo-bJQC8A[/YOUTUBE]
另外這是我看過最猛的(檔案size: 177k)
[YOUTUBE]vR8i2pnv4RY[/YOUTUBE]