本文檔為Esri CityEngine學習文檔,是CityEngine_2011_Tutorials 官方樣本教程1——
“Tutorial_01_CityEngine_Basics_2011”的中文翻譯稿,由網友冬冬翻譯整理。
在此非常感覺網友冬冬,也歡迎更多的網友提供更多的技術文章(可在新浪微博上@ArcGIS_三維通知我們)在本欄中與大家分享。 教程02和教程03內容也己有冬冬翻譯完畢,隨後會為大家更新上去。
教程簡介
本教程講解如何利用CityEngine快速地從無到有建立一個城市,通過對CityEngine各部分功能的講解使讀者瞭解完整的工作流程。您將學習到怎樣建立一個新的工程,建立道路網以及設定“形狀建立參數”。最後,您將學習使用規則編輯器並產生城市建築模型。
第一部分:建立一個新的工程建立新工程和情境
第一步,建立一個新的CityEngine工程。
選擇【File】—>【New】—>【CityEngine】—>【CityEngine project】
點擊【Next】,將工程命名為“FirstCity”並單擊【Finish】
完成以上操作,一個新的工程便建立好了並出現在在檔案導航視窗中(預設布局下檔案導航視窗位於CityEngine介面的左上方)。這些自動產生的檔案夾用來儲存你的工程資料,如assets檔案夾(用以儲存貼圖和引用的模型組件資料),rules檔案夾(用以儲存規則檔案)等。
第二步,建立一個新的情境:
選擇【File】—>【New】—>【CityEngine】—>【CityEnginescene】
確認新情境所儲存的檔案夾位置(/FirstCity/scenes),將該情境命名為“firstcity_01.cej”並點擊【Finish】
我們的工作空間中現在包含了一個新的空工程以及一個情境檔案:
拷貝規則和資源
在本教程的後面部分,我們需要使用規則檔案和資源(assets)用以產生建築物模型。因此我們現在需要從教程配套的樣本工程中拷貝這些檔案。
首先,我們將教程1的樣本工程匯入到當前的工作空間
下載並匯入教程工程(教程1)到我們的工作空間中
接下來,我們將所需要的檔案從已下載的教程1工程中拷貝到我們的建立工程中。
定位到教程1的資源(asset)檔案夾。
使用複製和粘貼(Ctrl+C和Ctrl+V)將資源(asset)檔案夾中所有的檔案與檔案夾拷貝到我們建立工程的資源(asset)檔案夾中。
使用同樣的方法,將規則檔案夾中的 “building.cga” 規則檔案拷貝到新工程的規則檔案夾中。
現在,你的導航視窗應如所示:
現在,我們已經為第二部分的建立道路網和建築模型工作做好了準備。
第二部分:街道和建築物
建立道路網
第一步,建立道路網
單擊viewport視窗將其啟用
選擇【Graph】—>【Grow Streets...】
選擇預設設定來建立我們的城市。
單擊【Apply】,並關閉對話方塊。
單擊ViewPort視察上方工具列中的“Frame All”按鈕(或單擊鍵盤上的“a”鍵)在Viewport視窗中全圖顯示你建立的道路網。
現在,你的Viewport視窗中應顯示如所示的道路網以及預設的建築物形狀。
現在我們來看一下情境編輯器視窗“Scene Editor”。可以發現一個名為“Streetnetwork 1”的新圖層已經產生。
修改“形狀建立參數”
現在我們改變一些形狀建立參數使情境看起來更加有趣。
點擊“a”鍵使當前情境全圖層顯示。
按住滑鼠左鍵,從右向左拖拽一個矩形框將情境中的全部元素都包含在內。
找到位於CityEngine視窗右上側的Inspector面板,單擊"Blocks"選項卡
開啟"Block Parameter",將看到“形狀建立參數”。
將類型(type)設定為位移細分(Offset Subdivision)
將最小面積(lotAreaMin)設定為300
將最大面積(lotAreaMax)設定為600
將位移寬度(offsetWidth)設定為20
將代替分割遞迴(subdivisionRecursive)設定為否(false)
仔細觀察情境中建築物形狀產生的變化
接下來進入第三部分,學習怎樣對建築物形狀應用CGA規則並建立建築物模型。
第三部分:應用CGA規則並產生模型CGA規則簡介
CityEngine中,使用CGA規則來描述3D 模型。一個CGA規則檔案由若干規則群組成,這些規則用來定義3D 模型是如何產生的。在一個CGA規則檔案被指定給某個形狀(如建築物地塊)時,建築物模型便開始產生。在本部分的教程中,我們將應用和修改一個由基本規則構成的簡單的CGA檔案。
應用一個CGA規則檔案
在3D視窗中,單擊某個形狀的內部以選中它。
在工具條中,單擊Assign按鈕並選中“building.cga”規則檔案
另一種應用規則的方式,是直接從導航視窗(Navigator)中將規則檔案拖拽到viewport視窗中的已選中形狀上。
現在,Inspector視窗應如所示
瀏覽CGA規則並設定初始規則
在產生模型前,我們需要確認在Inspector視窗中已選定形狀的初始規則被設定為了“Lot”,通常這種設定為預設設定。需要注意的是初始規則的名稱由CityEngine自動產生,但可以進行修改。
繼續保持某形狀在前一節中被選中的狀態,找到Inspector視窗中的初始規則(Start Rule)屬性。
雙擊規則檔案開啟規則編輯器(Rule Editor)視窗。在左側(黃色標籤部分)顯示的是規則的屬性,在右側(灰色標籤部分)顯示的是實際規則的圖表。
點擊紅色圓圈內所示的按鈕使編輯視窗最大化。
將規則定位在規則圖的根部,在這裡的根部指的是“Lot”。這個規則將是已選定形狀的起始規則。
再次查看inspector視窗,確認在"Start Rule"處選定的是"Lot"(“Lot”為預設值),如所示。
現在我們已經做好產生真實建築模型幾何體的準備了。
產生第一個建築物模型
確認選定形狀仍然在選中狀態,單擊產生(Generate)按鈕。
建築物模型出現在了選定形狀的上方
單擊選中模型,使用右鍵菜單中的"Delete Model"選項來刪除模型。
再次產生模型。
我們現在已經做好修改模型的準備。首先,我們將修改一個規則的屬性——building height(建築物高度)。接下來,我們將為建築物添加一個不同的屋頂,這樣我們就需要一個新的CGA規則。
修改規則屬性“建築物高度”
高度在相應的規則檔案中被設定為了隨機值,使用更新並產生模型(Update seed and Generate Models)命令多次產生建築物,觀察每一次產生的建築物的變化。
查看規則編輯器中建築物高程的預設定義:
在Inspector視窗中,定位到規則參數“Rule Parameter”。
找到高程"height"參數將其值修改為“18”。參數值的字型變成粗體,為使用者定義值。
再次重複點擊更新和產生模型命令(Update seed and Generate Models)。可以發現建築物模型的高度不再變化。你可以通過點擊數字“18”左側的黑色三角表徵圖將其重設為預設行為。
接下來,我們為屋頂添加一個新的規則。
添加一個屋頂規則
在inspector視窗中,通過點擊規則檔案開啟規則編輯器
找到“Lot”規則並點擊其右上方的“V”形符號將其展開。
在“comp”部分,右鍵點擊“shape”,在右鍵菜單中進行選擇,建立一個新的規則。
將新規則命名為"Roof"。
觀察新規則是如何產生並被串連到"Lot"節點上的。
為了建立一個屋頂模型,我們現在插入一個人字形屋頂圖形(即通常說的雙坡頂)。按右鍵“Roof”規則中的“Shape”,找到roofGable(angle, overhangX, overhangY)操作。
觀察roofGable操作的產生情況。點擊三個參數值分別輸入20, 1, 0作為屋頂的參數。
單擊產生(generate)按鈕,查看新產生的模型。
產生一個小的城市模型
在最後一個步驟裡面,我們會將規則應用到較大數量的形狀上。為了給較大數量的形狀分配規則,我們將使用選擇菜單。
選擇已產生的模型。
按右鍵3D視口,並選擇“Select -> Select Objects of Same Group”以選擇大量的形狀。
單擊assign按鈕,將building.cga規則指派給選中的形狀。
單擊“Generate”按鈕產生模型。注意:根據你的選擇,將會彈出一些關於起始規則“LotInner”或類似的警告對話方塊。你可以忽略這些對話方塊,因為我們對所有的形狀分配規則,但我們的規則並不包含名為“LotInner”等的起始規則。
你現在應該可以看到一些高度不同的建築物了。