【CityEngine教程文件】---01 基礎教程
本文件為Esri CityEngine學習文件,是CityEngine_2011_Tutorials 官方示例教程1—— “Tutorial_01_CityEngine_Basics_2011”的中文翻譯稿,由網友鼕鼕翻譯整理。
在此非常感覺網友鼕鼕,也歡迎更多的網友提供更多的技術文章(可在新浪微博上通知我們)在本欄中與大家分享。 教程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)將資源(
使用同樣的方法,將規則資料夾中的 “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規則來描述三維模型。一個CGA規則檔案由若干規則組成,這些規則用來定義三維模型是如何生成的。在一個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”等的起始規則。
你現在應該可以看到一些高度不同的建築物了。