2007/12/18

[翻譯]Procedural Modeling of Cities程序性產生城市的3D模型與材質

譯者序
這篇文章我斷斷續續翻了將近兩個月才完成 很高興終於發文了. 尖端科技總是由學術界做為先鋒 CG動畫也不例外. ㄧ套軟體的發表先由科學家提出構想 發表論文 再由軟體開發商基於學術論文將演算法轉變成軟體與ㄧ般人可讀的使用介面. 論文永遠走在時代的前端 所以接下來我將萃選出最近一些不錯的論文 將這些原文翻譯成漢字 希望讓台灣的軟體開發上能夠由這些論文中發掘一些題材與靈感. 最近的規劃就是先翻譯關於城市產生器(city generator)的論文集. 城市產生顧名思義就是讓軟體隨機的產生大量建築物與道路 利用軟體產生城市的3D模型. 這樣的軟體再商業上還沒出現但是已經有一些類似的服務在做了(沒有賣軟體但是有客製服務, 例如CityEngine) 相信不久的將來城市產生器會越來越成熟變成一個新興軟體發展重點 就像幾年前渲染外掛蓬勃發展那樣.

這篇論文是由兩位瑞士研究者Yoav I H Parish, Pascal Müller所發明的. Peter Jackson金剛電影裡面的紐約城市就是基於這篇論文(請參考此連結) 有此可見這篇論文的其重要性. 本文內容含有大量的程式語言 我沒有程式語言背景 所以在翻譯的時候只能翻其概念 如果內容過於艱深則選擇不翻譯以免誤導讀者. 其餘的部份則是以意譯為原則 不採用直譯 盡可能讓文句通順 如果有任何不妥之處歡迎來信指正 謝謝大家.

論文原始連結pdf檔

標題:
程序性產生城市的3D模型與材質(Procedural Modeling of Cities)



摘要:
用電腦軟體建立一個城市必須要面對幾個問題。每一個城市地區的交通運輸網絡,人口及環境等影響,往往是疊加的。建築物外表遵循歷史,美學及建築法規。創造一個虛擬城市,必須產生路線,設計和大量的建築物。我們提出一個系統使用程序性的做法,基於L-system,建立城市模型。從各種影像地圖作為輸入,如土地與水的界線和人口密度,我們的系統會產生一個系統的公路和街道,劃分土地變為地段,並創造適當的幾何建築物。為創造一個城市的街道地圖, L-system,考量整體目標和區域特色,並降低複雜的生產規則。以L-system產生的幾何和紋理,以程序方法構成的建築物。


圖1 :城市產生器的工作流程圖。黑色框框代表每個獨立工具產生的資料與結果。


圖2 :左欄:具有20英里直徑的虛擬城市其水,海拔和人口密度的貼圖。右欄:從這些輸入的資料產生的可能道路圖。


圖3 :套用到繼任器的函數。



圖4 :左:每條公路的末端發射出放射狀的線路, 這些線路會自動找尋最高人口密度的區域(暗區) 。右:連接人口中心的可能公路網。

圖5 :常見的道路類型。

表1 :在cityengine系統中使用的道路類型, 簡短描述與舉例。

圖6 :左:高度圖與由舊金山規則所產生的公路圖。右:街道地圖投射到地形上面。

圖7 :左:兩種不同的街道佈局控制圖(紐約和巴黎演算規則)。右: 把兩個地圖疊產生的街道圖。



圖8 :區域限制的例子。上排:由整體目標所產生的參數。下排:經過修正的參數。


圖9 :街道產生系統套用到曼哈頓。上排:經過28個和142個演算步驟後產生的街道。中排:最終演算出來的路線圖。下排:曼哈頓真正的街道是這樣的。


圖10 :左:最終道路圖。中:由道路交叉口所產生的街區。右:生成的街區。那些太小的街區或是道路無法到達的街區事後會被移除掉。

圖11 :5個建築物產生的連續步驟。l系統的基礎(根)是一個box,如此一來便於lod的產生。

圖12 :左:用一個函數將兩個分隔組定義出一個層(這裏使用的函數是AND) 。


圖13 :左:用隨機影像地圖產生的一個巢狀圖層。中:圖層的疊合。右:紅色圖層影響綠色圖層中網格的尺寸。


圖14 。左中:使不同的參數渲染出來的磚牆面。右:窗口和門戶周圍不同大小和顏色的磚頭。


圖15 。左:原始的圖片與網格疊合在一起,如藍色框線及紅色網格細胞分別構成巢狀隨機圖層。中右:不同尺寸但相同風格的建築外牆。


圖16 。渲染出來的虛擬城市。


圖17 。運用圖二中的數據產生的虛擬城市 。大約含有26000幢建築物。

1. 引言
建模與視覺化3D大型城市,是計算機圖形學中巨大挑戰。城市系統具有高功能性和視覺的複雜性。它們受到歷史,文化,經濟和社會變革隨著時間的推移,在每一個環節中都會對城市產生影響。觀看真實城市的照片,如紐約,顯示出城市的複雜性,街道模式,建築物,形式和紋理。當今電腦的運算力與記憶體的容量,使得建模與可視化技術的大面積城市已成為可行。應用面呢?從創作、從研究和教育用途,如城市規劃,建立虛擬環境來模擬。特別是娛樂市場,例如電影和遊戲產業,對於快速建立各種複雜環境有很高的需求。 在計算機圖形學中,制作大型、複雜可視化建模的系統,有著悠久的傳統。大部分是用在處理自然現象。製作這些大場景,關鍵在簡單的元素組合出複雜的大系統。 部分這些系統包括:侵蝕模擬, 粒子為基礎的森林, 雲建模。語法為基礎的產生模式(尤其是l系統),在過去的應用主要是創造植物。 l -系統已演變成非常複雜和強大的工具,並已被廣泛地使用在建模的植物生態系統當中。

1.1在城市建模當中過去的研究
其中一個方法模擬城市,是利用航空圖像提取建築物和街道來建構城市模型。有很多不同的研究項目,依靠這種方法。這種方法可以用於重建城市,但不是在沒有影的輸入數據之下,創造新的虛擬城市,如果沒有攝。 現有關於可視化城市的研究工作多側重於技術數據管理,快速,實時的可視化和快取使用優化。 ,亞歷山大等人。描述一個模式語言,其中包括超過250個相關模式,為順利建設的城市,建築物和房屋。他們從很籠統的模式一樣, "環城公路" ,以非常侷限性的功能為應用,例如 "在裂縫之間的石頭鋪路" 。由於這些模式都是非公式化的,他們不能自動產生的方式創造3d城市。 空間句法已經研製成功 。空間句法可以被看作為一套分析複雜的大型空間的理論。它試圖解釋人類行為和活動,從空間的角度來看,並已用在分析城市行人潮或尋路分析。這種方法是必需依靠現有城市地圖。在建築設計互動的研究領域中,有種研究方法:形狀語法。這種方法使用的生產規則,但不是處理strings,形狀文法直接定義形狀。形狀文法已被用來產生兩維模式,並應用在互動設計上。

1.2我們的方法
我們目前的cityengine系統能夠模擬出一個完整的城市,只用了一個比較小統計和地理數據輸入,而且我們的方法還有高度的可控性。據我們所知,過去並沒有人發明類似這樣的系統 。 [ 5 ]但是有個方法,是經由修該現有的幾何來創造城市。然而,這種方法要用手動的方式產生3D model。其他系統[ 4 , 32 ]依靠航空照片,輸入建築物和公路。我們cityengine創造了城市環境,從無到有,分層次的,易於理解的規則,可以依照用戶需求改變內容。 [ 33 ] , wegener分裂市區模型到子系統。他說,在產生網絡子系統時,土地使用和住房是最耗電腦運算的步驟。因此,在我們cityengine中 ,創造城市只產生交通網和建築物。土地利用數據,是由用戶提供的圖像地圖而來。當我們學習大城市的航空照片時,很顯然地街道遵循某種模式。道路運輸中會影響城鎮人口分佈。 l型系統已被使用在類似的應用[ 20 ],且L-system具有資料庫擴張的優勢 [ 30 ] ,這意味著,能產生有說服力的大型道路。我們採用了L-system,創建大中城市,收集了[ 11 ]於四個大的城市:紐約,巴黎,東京和倫敦。 雖然我們已經簡化了基本模型,但主要設計目標是讓該系統很容易擴展。我們希望能夠增加新的子系統,如不同的運輸網絡(在地下,火車)和另類的土地用途。要做到這一點,我們延伸了l系統具有更先進的機制,這使得加入新的規則變的很簡單。

1.3概述在第2章裡,我們描述cityengine系統的概念和制作流程和使用方法。在第3章介紹了延伸l -系統,使用戶實現整體目標和區域性的限制條件。我們證明了使用這一擴展概念來建立路線圖。第四章作一簡要概述了街區分割和建築物的產生,並解釋我們提出的機制,以簡化變形的外牆。最後,我們展示用cityengine製作出來的效果,並在第5章討論。

2系統架構
cityengine系統由幾個不同的工具,組成工作流程,如圖1所示。在第一個步驟,輸入數據道路產生系統,利用一種擴展l系統。先形成地區之間的道路,然後將建築物放置到其間的空間中。在第三個步驟中,運用另一種l系統,建築物以固體的形狀進行布爾操作,產生3D模型。最後,解析器解釋所有結果。可視化軟件應該能夠處理的多邊形幾何和紋理圖。在這種情況下,為幾乎任何三維渲染都可以。此外,多數掃描線渲染器支持程序紋理,所以產生建築物地墻面可以被納入到生產流程當中。

大部分是藉由輸入二維影像地圖,來建立一個虛擬城市。這些圖片可以很容易產生,可以經由手繪或是掃描進來的地理圖。數據可分為兩大類:
-地理地圖
-海拔地圖
-土地/水/植被圖
-人口密度區域地圖(住宅,商業或混合區)
- 街道模式(控制行為的街道)
-高度地圖(最大建物高度)

控制的各種參數的特殊工具,是可以經由用戶以交互方式或提供參數文件來改變,由。舉例來說,統計等測量數據,以此近似面積大小的塊或平均人數交叉口每平方哩,可以用來改變所造成的街道地圖。在圖2頂部的圖片的例子地理圖形圖像顯示,土地與水的界限,另ㄧ張圖又描繪出該地區的人口分佈。

兩種不同l -系統引用為建立完整的城市,一個是用在產生街道,另ㄧ個是用在產生建築物。人口密度是是受到城市街道所影響的。透過街道,人們在各種交通工具中被運送[ 12 ] 。當創建街道時,我們考慮這個情況用類似的方法,以公開l系統模型[ 20 ]產生。該l系統的機制作了修改,以這樣一種方式,各種不同的道路格局,可以使用同一生產規則來產生。

但並非所有的道路,會改變人口密度,例如:連接兩個城市的道路。因此,我們選擇了考慮兩種類型的道路:公路和街道。他們不同於在自己的宗旨和行為:公路連接地區高度集中的人口在全球範圍內,通過掃描,人口密度在地圖上的輸入為流量。街道涵蓋地區之間的公路,根據當地人口密度,讓所有街道交通進入就近的公路。兩者合計,這兩個類型道路,形成虛擬城市的交通網。

ㄧ但路線圖生成了,土地劃分成較小的地區,四周的街道。這些地區可以以幾何級數細分,以界定個別建築物的分割土地。建築物本身所產生的一個隨機,參數l系統。在我們的制度下,建築物是由外框線的擠壓,變形而產生地。 為最終可視化技術在渲染建築物外牆紋理生成採用半程序的做法。每一建築物外牆是拼接成的疊加和嵌套網格結構。分個的單元由此細分而來的,然後再指派紋理或程序紋理。

三,創造街道地圖
3.2道路創造的整體目標整體目標,主要是考慮設定參數的模塊,其初始值。該系統重量的影響,所有活躍的全球目標,並選擇適當的值為參數。影響某一特定目標,在任何時候,是控制輸入影像地圖。

3.2.1人口密度
如上所述,公路建設的主要方面,高度聚居的城市用高速公路連結,而街道發展成住宅區時,則給予居民使用公路的權利[ 12 ] 。該參數的確定一條公路部分敘述如下: 高速公路連接中心的人口。尋找未來人口中心,每一個公路道端芽數射線輻射狀在一個預設的半徑。沿著這條射線,樣本的人口密度是從人口密度地圖而來。人口在每個取樣點上線,是與加權逆距離到roadend和總結。方向與最大的總結是選擇繼續增長。如圖4所示。

與此相反,街道上不改變其方向將沿著最陡的梯度人口密度地圖。通常,他們的後續主導街道佈局。這是合理的,因為大多數的街道,在市區建成後,會以疊加模式加成上去。在創造街兩端仍低,人口密度在其環境下,通常是在該地區內的集體,根據該機制的建議,為Open L-systems [ 20 ] 。當一個地區的沒有人口時,街道就停止增長。

3.2.2道路格局
其他重要的全球性目標,是遵公路與佔主導地位的模式在這方面的工作。這適用於兩個公路和街道,雖然在我們的城市模型裡,街道上都是有限的,在可能的模式,他們可以形成。在圖5各種頻繁的道路格局正在上市[ 9 ] 。

最真實的城市展出多項道路模式,歷史的不同階段會產生不一樣的道路模式。 [ 12 ] , fuesser分類街道分成兩個大類:主要街道和定居為導向的道路。在他的分析,他比較網格狀與放射狀的道路模式。在多中心的城市網格模式佔上風,而在單核心的城市放射狀模式佔據主導地位。高速公路,通常有兩種模型,街道通常出現在網格或類似網格的模式。 [ 11 ]區分不同地區,在城市導致的結論是,中央區人口密度高,它可以被看作是多中心的城市。因此,在高密度區的城市,網格模式是佔主導地位。 我們採用了幾種模式,並訂下下列規則。

基本規則:這是最簡單可行的規則。有沒有疊加模式和所有道路,遵循人口密度。這也可以被稱為自然增長的交通運輸網絡。主要是年紀較大的部分城市表現出這種模式。所有其他規則是基於限制的規則,縮小選擇的分支夾角和公路段長度。 紐約(或棋盤)細則如下特定的全球或局部的角度來看,最大的長度和寬度,單座。這是城市地區中最常見的街道佈局,而所有的公路和街道上形成矩形。 巴黎(或放射)規則:高速公路以放射狀圍繞市中心,它可以是計算出來的數據輸入或設置手動。 舊金山規則:這種模式可以讓街道和高速公路後續路線的海拔最低限度。道路對不同高度層相連,規模較小的街道上,即遵循陡海拔和很短。這種模式通常是在地形高低起伏較劇烈的地方可觀察到。見圖6。

下表總結了道路產生依照這些規則:
如果在某一地點有多種模式,所有的模式都會被評估。建議參數值是總結和加權據該值輸入到圖像灰度地圖裡面。這使得混合不同類型的道路變得很容易,在圖7 。

3.3.1能夠偵測自我的L-系統
現有的軟體裡面還找不到能夠將L-系統分支合併在一起的系統,雖然在程序性血管紋路產生方面有類似的做法。在交通系統中的死胡同道路,是例外。大部分道路不會形成死胡同而是繞一圈迴路[ 9 ] 。迴路的形成,讓道路的拓撲由樹狀變成網狀。由於我們沒有一個交通模擬車流的基本模型,我們忽略了道路車輛負載的影響力。
圖9所示的一個例子,利用曼哈頓島的地圖產生的道路。,曼哈頓最古老的一部分是沒有用規則圖案來產生的。而城市較新的部分,是用”紐約規則”所產生的。區域的限制條件讓公路沿著海岸線方現行走。請注意電腦橋產生的位置與真實的橋的位置非常接近。

4. 建築物的建模
ㄧ但路線圖生成,該系統就產生了土地分割,用來安置這些建築。一個隨機l系統,接著生成幾何的建築物。每一幢建築物給予不同紋理。為了使用較少的記憶體,我們用半自動的方式產生材質。

4.1劃分地段
在創造了公路和街道上之後,城市細分為許多小的領域,我們稱之為blocks。我們假設,上述大部產生凸型的區塊。因此,這個系統禁止凹的區塊。塊劃分成較小的單位,用一個簡單的,遞歸算法使邊長接近平行,直到該細分地段達到用戶所指定的值。

在大多數城市,依照建築物法規,控制建築物最高高度,依照地面面積的分配和分區規劃。因此,用戶可以控制最高高度的建築物通過使用一個圖像地圖和制約摩天大廈的產生。經過細分的塊,如果劃分區塊太小,系統會將該區塊丟棄。

4.2幾何
在我們的系統當中所有的建築物都是參數,隨機L-system產生的。每一個的區塊產生一個建築物。遵循不同風格,我們考慮了三種類型的建築物:摩天大廈,商業大廈和住宅。這些都是由分區規則,通過使用影像地圖來控制的。對每一種建築不一樣執行不同的生產規則。 建築物是經由任意地面規劃而產生的。該模塊的l系統構成的轉型模式(規模及動議) ,擠壓模塊,分支和終止單元,和幾何模板,屋頂,天線等,最終規模建設,是由地面圖,這是轉化詮釋輸出的l系統。雖然可以經由這種方式產生大量的各種建築,但系統仍有其侷限,因為建築物的功能,不能由這些簡單的規則產生。不過,也有高度的視覺複雜性,可以達到如下所示,在圖11 。

4.3紋理
複雜的場景細節可以通過在建築物上添加細緻的貼圖來達成。我們用實際建築物的圖片,修改和投影到幾合體上。雖然這種方法提供了最詳盡的貼圖,然而準備貼圖卻要消耗大量時間。此外,由於大樓數目過多,記憶體的限制構成問題。大多數的這些困難是可以解決的,若使用程序紋理[ 10 ] 。不幸的是,並非所有細節能夠以這種方式達成。某些圖案像石頭和磚牆可以用合成的方式取得( [ 22 ] , [ 19 ] ) ,但建築物的牆面不能只是用這種方法達到。因此,我們決定設計一種工具,用半自動方式創造外牆,採用分層和簡單的功能性成分技術 [ 10 ] ,我們稱為分層網格。 我們的設計是基於對外牆的觀察。為了簡化我們的模型,下列假設門面紋理已取得:

1 外牆顯示一個或幾個重疊或嵌套網格狀結構,大多數網格細胞,完成相同的功能,即通常窗戶或大門是開啟的。
2特別是網格會影響到其他週邊的網格,如在一樓的窗戶會和一樓以上的窗戶有不同的尺寸。
3不規則的網格式針對整體,而不是單一的網格細胞。


我們的目標是要營造程序紋理,使用戶能夠捕捉某種風格的建築物貼圖,通過建立一個通用的風格紋理。每一個單一的風格紋理應產生各種不同的紋理,在定義出的風格裡,不論尺寸。由於圖像的門面分子能夠捕捉到細節,本系統仍然能產生磚面,門窗。

分層網格系統是基於區間群體。一個區間群體,是一套不重疊的,有序列的間隔。好處是用一維時間間隔為基礎的紋理是行與列的,且可以改變單間隔。儘管如此,我們還是能夠改變特定的網格細胞。 兩個任意區間群體能夠結合起來,形成雙向層如圖一所示, 12 。

圖層也可以是一個程序紋理,圖像地圖或另一層。舉例來說,當使用一個窗戶的影像地圖時,我們用了一些照片,顯示窗口開放,半開放和關閉。隨機運用不同的窗口,以每一個單元為基礎,很容易建立出複雜的圖案。
這套系統的缺點是每一個材質必須要手動建立。如圖一所示, 15 ,這是通過肉眼確定規律及測量門面元素的大小。ㄧ但shader被定義出來,材質就能拉伸成任何的長寬。

五、結果
我們提出幾張利用cityengin產生的城市,渲染出來的圖片。第一張是在即時渲染引擎產生的,而第二個例子是使用raytracer產生的 。 如圖一所示,有16截圖的'虛擬'曼哈頓,用 dvreality 5.0這套軟體呈現出來 。該模型包括曼哈頓島,含有大約13'000棟建築物。建立街道圖前後計算花費不到十秒鐘,分割街區並建立建築物大約花了10分鐘。建築物被拉伸,並自動產生紋理。由於該軟體不支持動態紋理生成,我們使用了一套傳統貼圖方式製作建築材質。橋是用手動的方式添加到場景中。

我們的第二個例子是一個不同的自動生成結果。在這個例子中,紋理是用程式自動疊合產生的。最後張圖片,是用Maya 3.0渲染出來的 。

6. 今後的工作
我們提出了一套系統,能夠由二維輸入數據產生一個大型城市。我們的做法並不取決於空中攝影的街道和建築物,是能夠產生無限多的城市,且產生的速度非常快。該系統生成的街道地圖,通過延伸的l -系統,處理許多不同的要求,就整體或是區域性地,且不會增加核心系統的複雜性,並創造了建築形狀對後來產生的分配。我們也發明了一個簡單的建築物紋理產生技術,能夠以程序性的方法產生。

這樣一個複雜的系統---城市產生器,引申出很多有趣的問題,可能會導致更為切合實際的結果。整體的道路產生:更多規則可以被添加到讓道路建立機制,讓道路的形成更加的真實。把這些因子加到道路產生器當中,可以利用抑制或是利益來決策道路路線的產生 。 模擬與分析增長:把城市的演進顯示出來又帶來新的問題。交通流可以添加到系統當中,並可能引發路線的成長過程。 建築物的產生:我們可以將房子分成幾個功能單元,這些單元再組合成為新的建築物,可能會是一個更好的建築物產生方式。可視化:創建程序紋理樣式,可能經由自動的方法找到有其盤狀的建築物材質,然後自動產生風格不同的貼圖。

[更多評論]
免費城市製造外掛CT Gen (Citygen)

拍幾張照片就可以轉換成3D模型的軟體--STRATA Foto 3D

電腦動畫世界裡的角色行為behavior

2007/10/29

[教學][筆記]用Afterburn plugin製作爆炸特效


教學影片的結果:


Sitni Sati公司出品的Afterburn是ㄧ個專門製作煙霧爆炸特效的外掛軟體. 你可能沒聽過Afterburn 但是你ㄧ定知道1998年的電影---世界末日(Armageddon)與最近(2005年)的另一部電影---鳳凰號(Flight of the Phoenix), 這兩部電影所用到的煙霧特效都是用Afterburn plugin做出來的. 當然還有其他電影如2002年的潛艇電影K19其中的核彈試射的拖尾煙霧也是用這個軟體做的...其他的電影 族繁不及備載. 無庸置疑 這是ㄧ個3dsmax平台上 電影級的特效外掛.

本教學將介紹如何用Afterburn 這套外掛置做基本的爆炸特效. 我們將先用Superspry作為爆炸的粒子系統 然後給予重力(Gravity)與風(Wind)作用力 讓粒子的移動更為自然. 最後我們用Afterburn這個體積上色器(volumetric shader)使粒子具有真實的煙霧 爆炸的感覺.

場景設定: Superspay粒子. ㄧ盞泛光燈. ㄧ個重力系統使粒子的軌跡彎曲. ㄧ個風力系統 亂流讓粒子的移動更加真實. 兩種外力都是為了讓爆炸更為真實

使用到的軟體: 全部都在3ds max 9當中製作, 用Sitni Sati Afterburn 3.2 plug-in製作爆炸煙霧. 完成渲染之後 我在SONY Vegas當中做了一點後製(亮度 對比等等調整) 同時也加了點爆炸音效 使用Sound Ideas添加爆炸, 燃燒音效.

教學影片 (總長17分鐘)
低解析度(320x240)

高解析度(720x480)

[更多教學影片]
用NURBS的建模方式製作寶特瓶

用Blubber script製作晃動的胸部

2007/10/28

[tutor][video]Air explosion with Afterburn in 3dsmax 9


Tutorial result:

In this quick and concise video tutorial, I am going to demo you how to create realistic air explosion with Sitni Sati Afterburn 3.2. We are going to set up a simple particle system by using Superspray, adding gravity and wind forces to it. Finally, add Afterburn volumetric shader to the particle to give smoking looking.

Scene setup:
One Superspay particle. One omni light. One gravity force to bend the particle trajectory. One wind effect to give turbulence effect on particle. Both forces will enhance the realism of air explosion.

Software: All create and rendering in Autodesk 3dsmax 9 plus Sitni Sati Afterburn 3.2 plug-in. After rendering, I did some video post by using SONY Vegas and adding sound effects from Sound Ideas.

Video tutorials (Running time 17mins)
Low resolution (320x240)

High resolution (720x480)


[More Videotutorials]
Building demolition in 3ds max 7 (Hot!)

Making a broken window without using a plugin

2007/10/19

Modeling in Second Life第二人生的建模系統

Second Life (以下簡稱SL)是Linden實驗室大約於2003年開始開放使用. Second Life如其名, 是真實世界以外的虛擬人生---創造你的第二人生. 第二人生當中有貨幣交流, 房屋土地買賣, 物品買賣...等. 因為第二人生的世界裡面有將虛擬貨幣轉成現實生活當中貨幣的銀行, 所以就技術上在SL可以讓您真的獲利. 不要認為SL只是ㄧ個實驗室開發作為測試或是噱頭而已, 根據官方說法SL目前已有全球超過百萬個註冊用戶, 在SL當中由於提供程式化 建造房子 交換虛擬衣服 汽車...所以儘管介面很像線上遊戲 SL變成一種新的網路平台 把即時通(例如MSN), 影片播放(例如YouTube), 網頁...等等混搭在這個虛擬世界當中.

可能是因為英文的關係 SL在台灣並不熱絡. 在國外 SL已經變成一種另類的行銷工具 電子產品公司如SONY在SL的世界開了虛擬的商店, 德國賓士汽車在SL當中放上虛擬的汽車 展示他們最新商品, 總統候選人在SL當中開虛擬後援會 記者會. 搖滾樂團在SL當中開演唱會.


Second Life當中的3D Model是以Prims為單位, Prims就是primitive的簡稱, 就是基本幾何體的意思. 除了人物 樹 草等以外的建築物 裝飾物 虛擬車店裡的汽車等等 都是以Prims為基礎製作出來的. 在SL當中共有13種基本物體 方體 球體 圓錐體...等等. 除了能夠調整大小 方位外 這些基本體還有類似3ds max當中modifier的特性. 例如: 剪切 挖洞 變形等等的指令 來延伸這些基本體的變化. 從兩個角度來看SL為什麼要以基本體為基礎(而不是讓使用者自己import任意的polygon模型): 原因一 很簡單 就是為了降低SL這具有MMORPG(大型多人線上角色扮演遊戲)特性的平台上 伺服器執行端的負荷, 以方體來說, ㄧ個方體也不過才12個三角面 根據第二人生官方對於單位面積土地上 可以放置的基本體上限約為0.2個/平方公尺 所以每平方公尺三角面限制大約為2-5個. 這樣粗算起來可能會覺得SL對於模型的限制很高 但是就ㄧ個第二人生島嶼來說, 65536平方公尺的島(相當於邊長256公尺的正方形) 可以放置1500個幾何體 其實綽綽有餘(你總不可能在島上塞滿建築物吧!). 使用基本幾何體的第二個原因是: 即時物理模擬運算. 什麼是即時物理運算? 看看這個影片你就會理解. 在SL當中物體被創建完後可以設定物體屬性. 有了物理運算 就可以確保這個虛擬世界的人物 物體不會相互穿透. SL當中物理模擬是和3ds max當中的物理模擬工具是相同公司出品的---Havok. Havok合併到3ds max當中就改名做Reactor.

土地管理費對照表(Land Maintenance Fee Schedule)


虛擬世界裏光是只有基本幾何體不免枯燥. 就在今年的四月份, SL推出了新的模型格式---雕塑幾何體(Sculpted Prims). 顧名思義雕塑幾何體就是以幾何體為基礎 不同的是還外加了特殊的貼圖---法線貼圖Normal Map. 這種貼圖有點類似置換貼圖(Displacement map), 與置換貼圖不同的是 法線貼圖不是只有灰階的顏色 而是彩色的同時帶有x, y, z的資訊 所以才能經由一張圖把模型複雜化.
以這個人頭雕塑為例, Chip Midnight先生寫了一個很清楚的範例. 他以3ds max為編輯工具 事先做好了人頭雕塑的複雜模型 然後他又另外做了一個球的基本幾何體 放置在人頭模型的外圍 經由3ds max軟體的運算出法線貼圖 再把這張貼圖導入到SL當中 就可以產生像人頭這般複雜的3D model了. 雖然法線貼圖並不算太新的技術 當今的3D電玩遊戲也多半有用到法線貼圖的技術 但在SL當中還沒辦法直接產生法線貼圖 必須要透過其他3D繪圖軟體才能製作法線貼圖. 免費的軟體如Blender或是商業軟體Maya, 3ds max其實都有人為SL寫專門的編輯工具. 請見Second Life官方維基百科.

(Image from: SIMtools)
你可能會問 法線貼圖 + 基本幾何體 能夠製作出多複雜的3D模型? 看看這個日本人做的神像就可以知道 只要有耐心 結合多個幾何體加上個別的法線貼圖也是能製作出逼真的3D模型.

除了建築物裝飾物等等物體外 SL的世界最重要就是居民. SL當中居民的3D model不是用Prims搭建出來 而是用另外一套系統--- Appearance儀容系統. 看到Second Life的Appearance下拉式選單 儼然讓SE變成一套獨立的人物模型/材質工具, 因為SE的儀容系統的功能實在是太完整了:從臉部(Shape), 頭髮(Hair), 眼睛(eyes)到短袖上衣(shirt), 鞋子, 外套, 手套…裙子全部都可以讓使用者客製化(customize). 身體的每一個配件都可以改變材質(預設值是白色). 這裡順便提一下, SE內建的材質庫總共超過14大分類: 建築物(Buildings), 泥土(Dirt, sand, ground), 衣物(Fabric), 頭髮(Hair Textures), 岩石(Rock)…等應有盡有.

月兌光衣服吧! (Take off clothing): SL當中還有一個令人發噱的下拉式選單. 這個選單讓你可以脫下上衣, 褲子(pants)或是全脫(All Clothes). 有空去下載Second Life玩玩看吧!


[更多建模相關文章]

2007/08/10

Ivy Generator與3ds max整合: 阿公的絲瓜園製作教學




菜瓜俗稱絲瓜, 菜瓜煮湯或是蛤蜊絲瓜都很好吃, 除了煮菜外, 菜瓜乾燥後還可做為海棉使用. 本教學我們將使用免費軟體---Ivy Generator(長春藤產生器), 這是由Thomas Luft先生寫的小軟體. 我們將利用Ivy generator模擬菜瓜在瓜棚上攀爬生長.

菜瓜的照片點這裡(Flickr)

這裡下載免費的Ivy Generator程式


製作流程:
在3ds max 7當中

1. 導入Ivy Generator軟體附贈的牆模型, 這個牆可作為尺寸與旋轉角度的參考物體. (轉成obj格式時 模型會在x軸選轉90度)
2. 製作瓜棚與簡易版(proxy)的瓜棚模型讓菜瓜攀爬.
3. 將proxy模型輸出成3ds格式, 再以Deep exploration軟體將檔案轉成obj格式. (因為3dsmax內建的轉換會出現問題 各位可以自行嘗試)

在Ivy Generator當中:

上圖為Ivy Generator使用介面


4. 導入proxy瓜棚(obj格式)
5. 在瓜棚附近點擊一下, 點擊Grow開始生長菜瓜, 生長到適當時機再點擊Grow一次中只生長. 點擊birth使軟體產生菜瓜絲與菜瓜葉的3D模型. 輸出模型

回到3dsmax 7中

6. 導入模型. 調整尺寸與旋轉角度. 有需要的話用lowpoly方式製作菜瓜果實與菜瓜花.
7. 直接套用Xfrog tropical熱帶樹資料庫加入木瓜樹 增加整體效果.
8. 利用Finalrender MTD製做土地. 用免費的Darktree外掛套用dirt材質.


我手上的菜瓜花


教學影片(總長28分鐘)
320X240

720X480

[更多教學]
NURBS建模教學套餐

義大利麵店的燈飾

Ivy generator and 3dsmax integration, making of Luffa farm




Luffa vegetable know as Tsai-Quan(菜瓜) in Taiwan. Luffa is not only delicious, dry Luffa form Luffa sponge which is great for washing stuff (picture of dry Luffa click here). In this video tutorial we are going to use a free software---Ivy Generator, create by Thomas Luft, to simulate the rambling Luffa.

Still don't know what Luffa looks like? Try this link (Flickr)

Click HERE to the Ivy Generator download page.

Workflow:

In 3ds max 7

1. import wall obj file that ship with Ivy Generator, this wall is for size and rotational reference.

2. Create rack for the Luffa to ramble. Create proxy object for this rack.

3. export the proxy object as 3ds file. Import in Deep exploration and save as obj file.


In Ivy generator



Screeshot of Ivy Generator


4. Import the proxy rack object (in obj format)

5. Click on anywhere to start grow your Luffa. Hit "birth" to generate mesh for leaves and branch. Export the mesh.

Back in 3ds max 7

6. Import the mesh. Rescale or rotate if necessary. You can also making the Luffa fruits / flowers by polygonal modeling if you like to.

7. Adding other tropical plants like papaya by using Xfrog tropical library. (optional)

8. Generate ground plane with Finalrender MTD. Apply Darktree Dirt material.


Taiwan Luffa flower photo by me.

Video tutorial (Running time: 28 minutes)
320X240

720X480

[More tutorials]
Palm tree island production solutions

Modeling a bottle of laundry detergent

Kamehameha! Dragonball-like effect by using Reactor and Ragdoll Maxscript

2007/07/26

利用VrayIso外掛建立複雜模型


隱式曲面(Implicit surfaces) 是一種含有以純量埸(Scalar field)傳透於3D空間的輪廓線所構成的曲面.---Paul Bourke

因為VrayIso這個免費外掛的出現, 不需要了解複雜的數學方程式我們也可以製作出隱式曲面. 感謝Dieter Morgenroth先生---VrayIso外掛的作者, 我們可以很輕易地利用此外掛將簡單的模型(上圖Taiwan造型)變成複雜的模型(下圖). (請注意本外掛必須在Vray渲染器的環境下才能運作)

Create implicit surfaces with VrayIso in 3dsmax 9


Implicit surfaces is surfaces which are contours (isosurfaces) through somescalar field in 3D.---Paul Bourke.


With VrayIso plugin, we can now create implicit surfaces without knowing complex mathematics formulas. Thanks to Dieter Morgenroth who create the VrayIso plugin, we can turn simple geometry (top) into complex solid object (bottom) with ease. (Please note this plugin only works when render with Vray renderer)

2007/07/17

[資源]三個製作材質(texture)的重要軟體/外掛


上圖是利用textureshaker外掛製作的滿地落葉的效果. 製作3D動畫時除了要有好的模型, 逼真的材質設定也是一個重要因素. 本文介紹當今三個重要的材質軟體/外掛, 分別具有不同特性與功能:


imageSynth: 這是一個Adobe photoshop的外掛, 原本是附在Luxology modo建模軟體當中 現在也獨立販售了. 這個外掛的字面直譯就是影像合成的意思(Synth就是取自Synthesis合成這個字的字頭). imageSynth的功能其實就是無接縫貼圖(Seamless textures)的產生器 只不過這個外掛用的是智慧型的演算法來產生無接縫貼圖. 不像是ㄧ般無接縫貼圖的作法以photoshp offset濾鏡讓原本的材質水平與垂直的影像平移 再利用clone tool塗抹中間交錯的接縫; Imgesynth是先導入一個或是數個較小的影像 稱之為chunk, 然後透過隨機大小 隨機裁切 隨機抖動 (jittering)去填滿整個影像區域. 透過智慧型的演算法 這個軟體會把相似的邊界的chunk擺在ㄧ起 因此可以產生無接縫貼圖. 點這裡觀看imageSynth的官方教學影片. 價格約99美元.


Seamless texture generator: 直譯就是無接縫材質產生器, 相當直觀的名子. 它的功能也像名子ㄧ樣簡單. 幾乎沒有太多選項 導入原材質 然後按下”Make texture”後 輕輕鬆鬆就幫你產生一張無接縫材質 期間軟體幫你修正原影像的透視(perspective), 色調, 以及幫你把邊界的地方經過適當的調整以產生無接縫貼圖. 其實這個小軟體的大部分功能都能在Adobe photoshop當中做到, 若是在photoshop當中你可能需要crop影像 利用free transform修正影像的透視問題 還要用offset濾鏡讓影像的左右上下部份平移 最後還要用clone tool把中間因為offset產生的接縫塗抹掉. 這些複雜的動作在Seamless texture generator大概不到30秒就完成了 對於講究效率的遊戲或是動畫公司應該是很需要. 價格約25塊美金.


最後來談功能強大的TextureShaker. TextureShaker是Maya或是3dsmax的外掛. 就功能上跟imageSynth與Seamless texture generator不太一樣, imageSynth與Seamless texture generator兩者的功能是產生無接縫貼圖 (map), 而TextureShaker主要是利用單張或是數張的無接縫貼圖(map) 經過隨機的放置 改變顏色 大小甚至疊合的程度的改變後 這個外掛能夠替您產生隨機性的材質(material). 簡單的說只要給它一張楓葉的貼圖 這個外掛就能幫您產生不同大小 顏色 旋轉方向 且隨機疊合的滿地楓葉. TextureShaker另一個功能就是它強大的鋪磁磚功能(tiling). ㄧ般3ds max內建的材質是經由一張磁磚的無接縫貼圖經由tile的值增加來產生一面磁磚的牆壁 或者是利用程序性貼圖來產生隨機的效果. TextureShaker結合上述的bipmap 與程序性貼圖的兩種功能, 只要在TextureShaker載入一張或多張磁磚貼圖, TextureShaker便能隨機性的進行tile的動作 好像請了ㄧ位磁磚工人般替您貼滿整個牆壁而且整體來看不會有重複的圖案(但是磁磚本身是重複的). 點這裡進入官方教學頁 含有大量教學影片. For 3ds max的plugin價格約為195元美金.

[更多文章]
弄懂材質--合成材質篇(composite)

弄懂材質--反射折射篇 reflect/refract material and map

推薦幾個3ds max免費外掛plugins的網站

2007/07/06

[教學][筆記]用3dsmax 9製作奔跑的臘腸狗dog

教學結果:


這個教學示範用lowpolygon的方法製作出一隻臘腸狗. 個人建模技術不佳所以特別偏好lowpoly的模型. Lowpoly的優點是建模容易上手, 除此之外要拆貼圖座標(unwrap UVW)也比較單純, 加上lowpoly本身點面數就較少 在製作動畫時不但調整起來很有效率 在算圖時也很快便算圖完畢. 可以說是業餘玩家的首選^^

3dsmax 9的polygon功能其實已經相當完善 而拆UVWmap的工具也很成熟, 齊全 我們將以Pelt map的方式拆UV. 在拆完UVW map後我們將狗的模型輸出至Righthemisphere公司出品的Deep paint 3D軟體進行小狗的貼圖繪製. 我們將利用Deep paint 3D的projection mode之強大功能直接將小狗的照片貼到模型之上, 最後因為Deep paint 3D能夠完美地與Adobe photoshop 7整合在一起, 我們將在Photoshop當中進行最後的貼圖編修.

動畫部分, 我們將用SOFTIMAGE公司出品的CAT (Character animation toolkit)外掛拖拉出馬(horse)的骨架, 然後經過修改尺寸後 套用狗奔跑的動作. 請至CAT的官方論壇下載CATmotion的擴充套件 因為原廠的外掛中沒有附贈狗的動作喔!

教學影片 (總長46分鐘, 分成兩部份)
Part1
Part2

[更多教學]

Making a running dachshund in 3ds max 9

Tutorial results:


In this video tutorial you are going to learn: (1)Polygon modeling a dachshund(dog) (2)Unwrap UVW in 3dsmax 9 with pelt mapping tech(3)Texture painting with Deep Paint 3D (4)Rigging and animating with SOFTIMAGE CAT plugin.

You can download the CATmotion presets for the dog running HERE (login first)

Video tutorial (durnation: 46mins, split into two parts)
Part 1
320X240
720x480

Part 2
320x240
720x480

[More tutorials]
lights in a spaghetti restaurant

Making of Taiwan Bell Fruit

2007/06/23

[教學][筆記]在3dsmax 9當中製作三種女性短髮hair



3ds max發展到第九版, 它的頭髮功能已經相當成熟了. 自3ds max 8 開始把過去的頭髮外掛功能納入主程式當中, 在第9版當中又改善了介面 使用者能夠在視阜當中直接剪裁, 梳理, 改變頭髮長度, 使得3ds max 9嚴然變成虛擬的理髮廳般. 在本快速教學裡 你將學到三種女性短髮造型的製作. 經由給予Hair and Fur修改器, 你能夠在3ds max 9當中替你虛擬人物製作頭髮造型.

流程:
1. 自頭模型當中擷取頭皮的mesh
2. 加入hair anf fur修改器
3. 利用Hairstyle功能將頭髮變長
4. 利用recomb功能梳頭
5. 利用dynamics功能讓頭髮自然地貼著頭皮
6. 利用translate功能梳頭
7. 利用cut功能修剪多餘頭髮

教學影片 (總長35分鐘, 分成兩部份)
Part1
320x240
720x480

Part2
320x240
720x480

[更多文章]

[tutor][video]Create three hairstyles in 3dsmax 9

Tutorial results:


In this quickstart video tutorial you will learn to create there different hairstyles for girls in 3ds max 9. By applying "Hair and Fur" modifier to your scalp meshes; you will stylize the hairs for your model in 3ds max virtual world. No third-party plugins required.

Workflow:
1. extract mesh from head model for the scalp
2. apply "hair and fur" modifier to the scalp mesh
3. Hairstyle/ scale up the hair
4. recomb the hair
5. Use the dynamics simulation to make the hair looks more natural
6. Translate(comb) the hair
6. Cut hair if the hair is too long


Video tutorial (Running time: 35 mins, split into two parts)
Part 1


Part 2
[More tutorials]
Making of Ferrero Rocher (chocolate)
Marilyn Monroe-style blow skirt