[其他] 從費馬的螺旋,也能看<少年Pi>特效

看板Math作者 (知更鳥)時間13年前 (2012/12/05 15:07), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
我想分享網路上的一篇專文,是在介紹少年Pi特效中重要功臣:Procedural modeling 這篇文章涵蓋的知識是結合了數學、程式、動畫, 最重要的是,以前我只知道應用數學可以用來算演算法,作出更好畫質的影片 但這篇文章,讓我體會到學數學其實也能搞藝術! 數學的美是真的能夠用眼睛欣賞的,大家在逛數學版時,不妨多想數學跟藝術有什麼相關 只節錄一部分數學性較重的,數學版友若從原文看起,可直接跳到我節錄的地方 原文出處:有物報告(http://yowureport.com/?p=3225 附圖) 原文作者:Chi-feng (旅居美國的遊戲設計師,曾在美商藝電(EA)任TA一職) Procedural modeling 是程式設計師向自然取經 如果留心看看自然界,上天已經隱藏的許多絕妙的 procedural model 在我們身邊了。讀 者應該都看過向日葵吧?向日葵 flower core 的部分,如果讀者仔細觀察,您會看到一 幅上帝的傑作。 向日葵花的排列,非常具有規律與美感,由中心像花瓣一樣四散出去。類似這樣排列的圖 樣,在數學上稱為「費馬的螺旋」(Fermat’s spiral),而其中最適合描述向日葵花的 是一種叫 Polar system 的座標系統。向日葵的wikipedia有對向日葵核心排列的圖樣更 詳盡的解釋,讀者可參考了解筆者下述的 MEL。 筆者參考 Polar system 的三個核心部分: r = c根號n r = 正負theta^(1/2) theta = n * 137.508度 寫出了下列的 MEL: for ($i =0; $i <=200; $i++){ float $currentAngle = $i * 137.5; float $radius = 15 * sqrt($i); float $newY = -1 * $radius * sin($currentAngle); float $newX = $radius * cos($currentAngle); sphere; duplicate; scale (1+$i*0.2) (1+$i*0.2) (1+$i*0.1); move (0+$newX) (0+$newY) (0+$i*0.15); }; 如此產生出來的向日葵花核(core)如下圖。只要改變$i角度,就可以改變核心的密集程 度。 圖參見原文: http://yowureport.com/?p=3225 看到這裡,讀者是不是能夠再仔細想想,自然界還有哪些東西是類似向日葵花一樣,暗藏 上帝的傑作呢?而《少年 Pi》在特效的製作正是大量利用了Procedural Modeling 來產 生令人驚豔的奇幻效果,所以說或許某些程面上,李安也是受到自然或是生物所啟發吧! 這也是在電影結束之後,我想對片尾字幕中列出,負責寫 procedural modeling 的程式 人員致敬的原因。有了這些人與技術,在電影特效製作上不僅節省巨量的寶貴時間,還能 夠無限制的馳騁導演的想像力。 ------ 看完這篇文章,我才懂原來polar system 可以這麼好玩 :P 可以拿來畫向日葵! 希望大家在學數學時,都能發現更多數學的美 (曾經是應用數學系的我共勉之) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 68.170.71.133 ※ 編輯: robinhoodli 來自: 68.170.71.133 (12/05 15:08)

12/07 00:40, , 1F
推!
12/07 00:40, 1F
文章代碼(AID): #1GllB9Yd (Math)