CityEngine城市三維建模入門教程 課件全套 第1-7章 CityEngine概述-使用Python腳本語言_第1頁
CityEngine城市三維建模入門教程 課件全套 第1-7章 CityEngine概述-使用Python腳本語言_第2頁
CityEngine城市三維建模入門教程 課件全套 第1-7章 CityEngine概述-使用Python腳本語言_第3頁
CityEngine城市三維建模入門教程 課件全套 第1-7章 CityEngine概述-使用Python腳本語言_第4頁
CityEngine城市三維建模入門教程 課件全套 第1-7章 CityEngine概述-使用Python腳本語言_第5頁
已閱讀5頁,還剩176頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

CityEngine城市三維建模入門教程配套課件第一章CityEngine概述

第二章街道建模

第三章手動(dòng)三維建模

第四章CGA規(guī)則建模

第五章對象選擇與視域分析

第六章數(shù)字模型導(dǎo)入與導(dǎo)出

第七章使用Python腳本語言課程目錄CATALOG課程目錄與教程目錄對應(yīng)關(guān)系CATALOG第一章CityEngine概述,對應(yīng)教程:第1章CityEngine概述第二章街道建模,對應(yīng)教程:第2章街道建模第三章手動(dòng)三維建模,對應(yīng)教程:第3章手動(dòng)三維建模第四章CGA規(guī)則建模,對應(yīng)教程:第4章CGA規(guī)則建模、第5章CGA形狀編輯操作、第6章CGA紋理貼圖操作、第7章CGA屬性及屬性設(shè)置、第8章CGA程序結(jié)構(gòu)與規(guī)則函數(shù)、第9章CGA常用內(nèi)置函數(shù)、第10章CGA注解與樣式第五章對象選擇與視域分析,對應(yīng)教程:第11章對象選擇與視域分析第六章數(shù)字模型導(dǎo)入與導(dǎo)出,對應(yīng)教程:第12章數(shù)字模型導(dǎo)入與導(dǎo)出第七章使用Python腳本語言,對應(yīng)教程:第13章使用Python腳本語言注:本課件中出現(xiàn)“教程”視為配套圖書《CityEngine城市三維建模入門教程》的簡稱。第一章概述1.1CityEngine發(fā)展概述1.2CityEngine建模特點(diǎn)1.3CityEngine軟件界面1.4CityEngine工程組織方式1.5CityEngine圖層介紹及操作CATALOGCityEngine最早可追溯到2001年的瑞士蘇黎世聯(lián)邦理工學(xué)院和中影公司聯(lián)合發(fā)表的《ProceduralModelingofCities》論文,該研究提出并探討了使用程序模擬城市的可行性。2008年,瑞士Procedural公司正式發(fā)布了第一個(gè)商業(yè)版本的CityEngine2008。隨后,該公司在2009年和2010年先后推出了CityEngine2009版本和CityEngine2010版本。2011年,美國環(huán)境系統(tǒng)研究所公司(ESRI)收購了Procedural公司,并將軟件更名為EsriCityEngine。同年,ESRI公司成立了蘇黎世研發(fā)中心,專注于城市設(shè)計(jì)、三維建模和地理信息系統(tǒng)(GIS)集成。自2011年11月至2016年6月,ESRI公司每隔一年更新一版。在這六年的發(fā)展中,EsriCityEngine與ArcGIS深入集成,全面支持地圖投影坐標(biāo)系,支持FileGDB文件和Shapefile文件,增加建模規(guī)則,擴(kuò)展植物庫,改善用戶界面,使其具有更好的用戶體驗(yàn)。1.1CityEngine發(fā)展概述在2017年,ESRI公司推出了EsriCityEngine2017版本。相比之前的版本,該版本呈現(xiàn)了一個(gè)完全改進(jìn)的圖形用戶界面,引入了全新的工具欄圖標(biāo)集,更新了窗口選項(xiàng)卡和其他用戶界面元素外觀,提供了非常重要的測量工具,重新設(shè)計(jì)了光標(biāo)以突出顯示當(dāng)前活動(dòng)的工具狀態(tài),實(shí)施了新穎的3D導(dǎo)航系統(tǒng),改進(jìn)及擴(kuò)展了CGA規(guī)則函數(shù),完善了數(shù)據(jù)導(dǎo)入和導(dǎo)出功能,增強(qiáng)了虛擬現(xiàn)實(shí)(VR)體驗(yàn),提高了軟件的易用性。在此之后,EsriCityEngine2018版本進(jìn)一步豐富了手動(dòng)建模工具和程序建模函數(shù)庫,完善了新建高程數(shù)據(jù)工作流,改進(jìn)了對ArcGIS平臺(tái)的支持和對虛幻引擎(UnrealEngine)的支持。另外,檢查器和視窗也有顯著改進(jìn)。隨后,EsriCityEngine2019版本再次豐富了手動(dòng)建模工具和程序建模函數(shù)庫,同時(shí)改進(jìn)了檢查器窗口和3D數(shù)據(jù)的導(dǎo)入/導(dǎo)出,支持虛幻工作室(UnrealStudio)和Web3D場景,集成了ArcGISUrban。1.1CityEngine發(fā)展概述在2020年,ESRI公司將EsriCityEngine更名為ArcGISCityEngine,并發(fā)布了2020版本。隨后,ESRI公司在2021年又發(fā)布了ArcGISCityEngine2021版本。至此,CityEngine已成為ArcGIS系列的正式組成部分,也體現(xiàn)了CityEngine與ArcGIS產(chǎn)品無縫協(xié)作的目標(biāo)。ArcGISCityEngine相比EsriCityEngine2019版本在軟件界面和操作方面并無顯著區(qū)別,只是在渲染材質(zhì),支持外部模型以及模型編輯方面有所改進(jìn),主要體現(xiàn)在改進(jìn)了對基于物理渲染(PBR)材質(zhì)的顯示,對Pixar公司的開源通用場景描述(USD)數(shù)據(jù)格式的支持,增加了交互式設(shè)計(jì)的工具選項(xiàng)。另外,在軟件操作界面上提供了對中文的支持,在CGA規(guī)則中增加了對數(shù)組的支持,對CSV文件的支持。截止目前,ESRI公司已推出ArcGISCityEngine2023版本。1.1CityEngine發(fā)展概述各版本的詳細(xì)特點(diǎn)請點(diǎn)擊以下網(wǎng)址查看:/en/cityengine/latest/whats-new/cityengine-release-notes.htm1.2CityEngine建模特點(diǎn)(1)使用GIS數(shù)據(jù)作為背景底圖在大規(guī)模場景的城市建模中,所有的地理實(shí)體都可以用GIS數(shù)據(jù)描述,CityEngine全面支持GIS數(shù)據(jù)。(2)使用CGA規(guī)則進(jìn)行程序建模在大規(guī)模場景內(nèi),使用CGA規(guī)則建模,可以顯著提高3D建模效率,降低建模成本。對于重復(fù)性出現(xiàn)的建模任務(wù),可使用Python進(jìn)一步簡化工作流程,加快建模進(jìn)度和保證建模質(zhì)量。(3)使用屬性和注解自定義用戶界面通用性的CGA規(guī)則可作為CityEngine的插件,比如雙跑直行樓梯規(guī)則通過修改臺(tái)階和中間平臺(tái)的尺寸參數(shù)可適應(yīng)幾乎全部的直跑樓梯和雙跑直行樓梯建模,而臺(tái)階和中間平臺(tái)的尺寸參數(shù)可通過使用CGA規(guī)則的屬性和注解將其作為接口顯示在檢查器的規(guī)則面板中,也就是說允許用戶在檢查器中自定義參數(shù)界面,以適應(yīng)當(dāng)前的樓梯建模任務(wù)。1.2CityEngine建模特點(diǎn)1.3CityEngine軟件界面CityEngine界面大致可分為主菜單、工具條、導(dǎo)航器(Navigator)、場景編輯器(SceneEditor)、CGA規(guī)則編輯器、模型視圖(如3DView、TopView)、檢查器(Inspector)、控制臺(tái)(Console)。文件編輯

選擇

圖層

圖形

形狀

分析

搜索

腳本窗口ArcGIS城市幫助主菜單主要包括:文件(File)、編輯(Edit)、選擇(Select)、圖層(Layer)、圖形(Graph)、形狀(Shapes)、分析(Analysis)、搜索(Search)、腳本(Scripts)、窗口(Window)、幫助(Help)。主菜單主菜單各工具的介紹見教程第4頁。工具條主要包括選擇、導(dǎo)航攝像機(jī)、變換工具、坐標(biāo)系、數(shù)值輸入框、街道建模工具、形狀建模工具、CGA生成模型、測量、視域分析和環(huán)境設(shè)置等內(nèi)容。工具條測量視域分析環(huán)境設(shè)置選擇導(dǎo)航相機(jī)變換工具坐標(biāo)系數(shù)值輸入框街道建模工具形狀建模工具CGA生成模型1.3CityEngine軟件界面工具條中各工具的詳細(xì)介紹見教程第8頁。導(dǎo)航器導(dǎo)航器用于查看和管理項(xiàng)目文件。在該面板中,通過使用鼠標(biāo)右鍵快捷菜單,可對文件或圖像進(jìn)行基本的操作處理。場景編輯器在導(dǎo)航器中用鼠標(biāo)左鍵雙擊場景文件,會(huì)打開場景編輯器,用于對場景中的各個(gè)圖層組、圖層及對象進(jìn)行編輯和管理。每個(gè)圖層右側(cè)提供了設(shè)置顏色(SetColor),鎖定(Lock/Unlock)和顯隱(SetVisibility)操作。規(guī)則文件編輯器在導(dǎo)航器中用鼠標(biāo)左鍵雙擊CGA規(guī)則文件,會(huì)打開規(guī)則文件編輯器,用于對CGA規(guī)則進(jìn)行編輯。該編輯器會(huì)高亮顯示CGA關(guān)鍵字并提供語法錯(cuò)誤檢查。導(dǎo)航器場景編輯器規(guī)則編輯器1.3CityEngine軟件界面模型視圖CityEngine提供了多種模型視圖,包括:3D視圖(3DView),頂面視圖(TopView),正面視圖(FrontView)、側(cè)面視圖(SideView)等。默認(rèn)情況下,只顯示3D視圖,如需創(chuàng)建其他視圖可通過主菜單Window->NewViewport完成。1.3CityEngine軟件界面模型視圖中各操作的詳細(xì)介紹見教程第11頁。檢查器檢查器(Inspector)是查看和修改CityEngine對象的主要工具。根據(jù)所選對象的類型,檢查器呈現(xiàn)相應(yīng)的交互界面以提供對對象屬性的完全訪問權(quán)限。CityEngine提供了控制臺(tái)(Console)面板,用于實(shí)時(shí)輸出CGA命令或Python腳本產(chǎn)生的文本,同時(shí)也支持Python命令的輸入。在控制臺(tái)頂部工具欄顯示了控制臺(tái)不同類型的切換操作??刂婆_(tái)類型主要包括:CGA控制臺(tái),Python輸出控制臺(tái)和Python輸入控制臺(tái)??刂婆_(tái)狀態(tài)條CityEngine的狀態(tài)條主要用于實(shí)時(shí)顯示當(dāng)前的內(nèi)存使用情況,這在進(jìn)行大規(guī)模場景的模型轉(zhuǎn)換時(shí)非常有用,此外還會(huì)顯示當(dāng)前的場景坐標(biāo)系。1.3CityEngine軟件界面1.4CityEngine工程組織方式CityEngine的工程(Project)由多個(gè)文件夾及文件構(gòu)成。當(dāng)新建一個(gè)工程時(shí),通常會(huì)自動(dòng)產(chǎn)生“assets(資產(chǎn))”,“data(數(shù)據(jù))”,“images(圖像)”,“maps(地圖)”,“models(模型)”,“rules(規(guī)則)”,“scenes(場景)”,“scripts(腳本)”等文件夾。資產(chǎn):用于存放建模中所使用的所有紋理圖片和靜態(tài)模型。在使用CGA規(guī)則時(shí),會(huì)調(diào)用此文件夾中的資產(chǎn)文件。在建模中,可通過雙擊資產(chǎn)文件在預(yù)覽窗口(Preview)中預(yù)覽外觀。數(shù)據(jù):此文件夾可包含任意補(bǔ)充數(shù)據(jù)。如導(dǎo)入的矢量數(shù)據(jù),每個(gè)場景的儀表板(Dashboard)配置文件以及每個(gè)圖層的高程增量文件等。在建模中與之相關(guān)的資料文件,如插圖和草圖,也可放在此處。圖像:其他圖像(如視圖快照文件)存儲(chǔ)在此處。地圖:用于存儲(chǔ)創(chuàng)建地圖圖層所使用的地圖圖像。如遙感影像,高程數(shù)據(jù)或障礙物圖。CityEngine支持多種位圖文件格式,如“*.jpg”,“*.png”,“*.tif”等。模型:CityEngine導(dǎo)出3D模型的默認(rèn)位置。規(guī)則:用于存儲(chǔ)CGA規(guī)則文件(*.cga)。雙擊CGA文件可直接在CGA編輯器中打開。場景:用于存儲(chǔ)CityEngine的場景文件(*.cej)。雙擊場景文件將關(guān)閉當(dāng)前場景并打開新選擇的場景。腳本:用于存儲(chǔ)Python腳本文件(*.py)。1.4CityEngine工程組織方式通常,CityEngine中的工程由多個(gè)場景組成,每個(gè)場景包含多個(gè)方案(Scenario),每個(gè)方案包含多個(gè)圖層(可以為單個(gè)或多個(gè)地圖圖層、圖形圖層、形狀圖層、靜態(tài)模型圖層、分析圖層)。特定的圖層(如形狀圖層)通過調(diào)用CGA規(guī)則文件來構(gòu)建三維模型。1.5CityEngine圖層介紹及操作CityEngine中的圖層主要包括圖形(Graph)圖層、形狀(Shape)圖層、靜態(tài)模型(StaticModel)圖層、分析(Analysis)圖層和地圖(Map)圖層。形狀(Shape)是CityEngine場景中的基礎(chǔ)要素。無論是街道建模還是街區(qū)建模,抑無論是手動(dòng)建模還是規(guī)則建模,形狀都是最重要的實(shí)體。創(chuàng)建形狀對象可以使用導(dǎo)入外部矢量數(shù)據(jù)的方式,也可以使用形狀建模工具直接創(chuàng)建。形狀圖層圖形(Graph),簡稱圖,由邊和結(jié)點(diǎn)構(gòu)成。在地理信息系統(tǒng)中,如果將街道抽象為線要素,則邊由街道中心線構(gòu)成,結(jié)點(diǎn)由中心線的交叉點(diǎn)構(gòu)成。街道相互串聯(lián)構(gòu)成了街道網(wǎng)絡(luò),它代表了城市的脈絡(luò),描述了城市的布局。圖形圖層靜態(tài)模型(StaticModel)是指由第三方建模軟件生成的三維模型,通常為單體或小品模型(如建筑物、植物、人物、動(dòng)物等)。導(dǎo)入靜態(tài)模型生成的圖層稱為靜態(tài)模型圖層。靜態(tài)模型在CityEngine中不可被編輯,此其頂點(diǎn)不能被移動(dòng),紋理不能被更改,也不能使用規(guī)則進(jìn)行驅(qū)動(dòng)。對于復(fù)雜、難以建模的模型,如人物、植物、動(dòng)物、車輛、水法等通常可采用靜態(tài)模型導(dǎo)入的方式,豐富場景模型。靜態(tài)模型圖層分析(Analysis)圖層是采用視域分析(VisibilityAnalysis)工具生成的圖層。分析圖層1.5CityEngine圖層介紹及操作地圖圖層CityEngine中的地圖圖層主要有兩個(gè)作用:一是將圖像數(shù)據(jù)(如遙感影像)作為地圖對象添加到場景中;二是創(chuàng)建圖像數(shù)據(jù)到各種屬性(如坐標(biāo)、分辨率、高程值等)的映射。地圖圖層包括五種類型:地形圖層(Terrain),紋理圖層(Texture),障礙圖層(Obstacle),映射圖層(Mapping)和函數(shù)圖層(Function)。1.5CityEngine圖層介紹及操作Layer圖層操作CityEngine涉及圖層的操作主要位于主菜單Layer中,包括:復(fù)制圖層(DuplicateLayer)、合并圖層(MergeLayers)、框架圖層(FrameLayer)、復(fù)制圖層組(DuplicateLayerGroup)、新建圖層組(NewLayerGroup)、新建圖形圖層(NewGraphLayer)、新建形狀圖層(NewShapeLayer)、新建靜態(tài)模型圖層(NewStaticModelLayer)、新建分析圖層(NewAnalysisLayer)、新建地圖圖層(NewMapLayer)、對齊地形到形狀(AlignTerraintoShapes)、重置地形(ResetTerrain)、對齊靜態(tài)模型到地形(AlignStaticModelstoTerrain)1.5CityEngine圖層介紹及操作顏色鎖定顯隱CityEngine為場景(Scene)方案中的圖層或圖層組提供了設(shè)置顏色(SetColor),鎖定(Lock/Unlock)和顯隱(SetVisibility)操作。Scene圖層操作1.5CityEngine圖層介紹及操作在Scene圖層上,使用鼠標(biāo)右鍵打開快捷帶單,可以實(shí)現(xiàn)圖層的復(fù)制、剪切、粘貼、刪除、重命名等基本操作。此外,在不同圖層之間可以對形狀要素使用標(biāo)準(zhǔn)的剪切、復(fù)制和粘貼操作。第二章街道建模2.1創(chuàng)建新項(xiàng)目2.2創(chuàng)建新場景2.3創(chuàng)建地形數(shù)據(jù)2.4創(chuàng)建街道圖層2.5街道網(wǎng)絡(luò)及屬性2.6隨機(jī)街道建模2.7手動(dòng)街道建模2.8創(chuàng)建街區(qū)CATALOG2.1創(chuàng)建新項(xiàng)目在主菜單上點(diǎn)擊File->New,打開New對話框,選擇CityEngineproject,然后輸入新項(xiàng)目名稱,點(diǎn)擊Finish,完成新項(xiàng)目的創(chuàng)建。2.2創(chuàng)建新場景在文件夾scenes上點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)擊New->CityEngineScene,進(jìn)入新建場景對話框,設(shè)置場景路徑、名稱和坐標(biāo)系后,點(diǎn)擊Finish。創(chuàng)建后的空白場景如下圖所示。點(diǎn)擊Layer->NewMap

Layer,打開新建地圖圖層對話框,設(shè)置對應(yīng)參數(shù),點(diǎn)擊Finish結(jié)束。2.3創(chuàng)建地形數(shù)據(jù)在場景中新建街道圖層,可通過點(diǎn)擊主菜單的Layer->NewGraphLayer實(shí)現(xiàn)?;蛟趫鼍肮芾砥鳎?Scene)的快捷菜單中選擇New->NewGraphLayer實(shí)現(xiàn)。在已創(chuàng)建的街道圖層上,應(yīng)用手動(dòng)街道建模工具可以繪制任意形狀的街道。(a)(b)2.4創(chuàng)建街道圖層街道網(wǎng)絡(luò)的構(gòu)成使用CityEngine的街道建模工具生成的街道圖層由Network(網(wǎng)絡(luò))和Blocks(塊或街區(qū))組成,其中Network包括Edge/Segment(邊/段)和Node(結(jié)點(diǎn))。無論是邊、結(jié)點(diǎn)還是塊,都由若干Shape(形狀)組成。2.5街道網(wǎng)絡(luò)及屬性Edge中的ShapeBlock中的ShapeNode中的Shape街道屬性完整的街道由形狀(Shape)、塊(Block)、路段(Segment)和結(jié)點(diǎn)(Node)構(gòu)成。因此當(dāng)選擇創(chuàng)建的街道全部要素后,會(huì)在檢查器中查看到這四項(xiàng)屬性,如果選擇單個(gè)要素,只能查看到對應(yīng)的單項(xiàng)屬性。形狀屬性:提供了形狀參數(shù)、規(guī)則、報(bào)告、對象屬性、頂點(diǎn)和信息等內(nèi)容。塊屬性:提供了塊參數(shù)、對象屬性、頂點(diǎn)和信息等內(nèi)容。路段屬性:提供了街道參數(shù)、對象屬性、頂點(diǎn)和信息等內(nèi)容。結(jié)點(diǎn)屬性:提供了交叉點(diǎn)參數(shù)、對象屬性、頂點(diǎn)和信息等內(nèi)容。2.5街道網(wǎng)絡(luò)及屬性點(diǎn)擊模型視圖中的3D

View,使其成為活動(dòng)窗口。在主菜單上點(diǎn)擊Graph->GrowStreets,打開生成街道(GrowStreets)對話框,設(shè)置相應(yīng)參數(shù),點(diǎn)擊Apply。設(shè)置街道類型,Organic:有機(jī)型,Raster:柵格型,Radial:輻射型2.6隨機(jī)街道建模使用隨機(jī)街道建模工具創(chuàng)建的街道效果。CityEngine中的手動(dòng)街道建模工具全部放置在主菜單的圖形(Graph)中,主要包括手繪街道(FreehandStreetCreation)、多邊形街道(PolygonalStreetCreation)、編輯街道(EditStreets/Curves)、設(shè)置街道參數(shù)(StreetCreationSettings)、設(shè)置曲線硬直(SetCurvesStraight)、設(shè)置曲線平滑(SetCurvesSmooth)、曲線自動(dòng)平滑(CurvesAutoSmotth)、生成橋梁(GenerateBridges)、簡化圖形(SimplifyGraph)、清理圖形(CleanupGraph)、對齊圖形到地形(AlignGraphtoTerrain)、調(diào)整街寬到形狀(FitWidthstoShapes)其中手繪街道、多邊形街道、編輯街道、清理圖形及對其圖形到地形等常用操作被布局在工具條上。2.7手動(dòng)街道建模本課件僅講解常用的手繪街道、多邊形街道和編輯街道等工具的基本操作,其他工具的詳細(xì)介紹見教程第34~41頁。手動(dòng)街道建模工具2.7手動(dòng)街道建模手繪街道首先在文件夾scenes上用鼠標(biāo)左鍵點(diǎn)擊已創(chuàng)建好的Graph圖層,然后激活3DView視圖。點(diǎn)擊主菜單Graph->FreehandStreetCreation工具,或在工具條上直接點(diǎn)擊工具,然后在3DView視圖中繪制街道。如果停止繪制,按ESC或Enter鍵結(jié)束。2.7手動(dòng)街道建模使用創(chuàng)建手繪街道工具可以徒手繪制任意形狀的街道。多邊形街道首先在文件夾scenes上用鼠標(biāo)左鍵點(diǎn)擊已創(chuàng)建好的Graph圖層,然后激活3DView視圖或TopView視圖。點(diǎn)擊主菜單Graph->PolygonalStreetCreation工具,或在工具條上直接點(diǎn)擊工具,然后在3DView視圖中繪制街道,其他操作類似手繪街道。2.7手動(dòng)街道建模編輯街道首先在文件夾scenes上用鼠標(biāo)左鍵點(diǎn)擊已創(chuàng)建好的Graph圖層,然后激活3DView視圖。點(diǎn)擊主菜單Graph->EditStreets/Curves工具,或在工具條上直接點(diǎn)擊工具,然后在3DView視圖中用鼠標(biāo)左鍵點(diǎn)擊要編輯的街道要素。編輯街道工具可對街道結(jié)點(diǎn)(Node)和寬度(Width)進(jìn)行編輯,并顯示兩種手柄:曲線手柄和街道寬度手柄。2.7手動(dòng)街道建模(a)(b)首先在Scene面板中用鼠標(biāo)左鍵點(diǎn)擊已創(chuàng)建的Graph圖層,然后激活3DView視圖,用鼠標(biāo)左鍵點(diǎn)擊多邊形街道(PolygonalStreetCreation)工具繪制由四條街道圍成的街區(qū)。2.8創(chuàng)建街區(qū)和創(chuàng)建街道方式類似,創(chuàng)建街區(qū)既可以使用隨機(jī)方式,也可以采用手動(dòng)方式。隨機(jī)創(chuàng)建街區(qū)過程如下。創(chuàng)建街區(qū)中各參數(shù)的詳細(xì)說明見教程第43~44頁。第三章手動(dòng)三維建模3.1創(chuàng)建形狀圖層3.2手動(dòng)建模工具3.3形狀建模工具3.4變換工具3.5測量工具3.6手動(dòng)三維建模示例CATALOG由于手動(dòng)三維建模是針對形狀(Shape)進(jìn)行操作,因此需要在場景中新建形狀或街道圖層。使用鼠標(biāo)左鍵雙擊已創(chuàng)建的場景文件,打開場景器*Scene及3DView窗口。然后在場景器的快捷菜單中選擇New->NewShape/GraphLayer操作,并為之命名。也可以在主菜單上點(diǎn)擊Layer->NewShape/GraphLayer按鈕,新建形狀及街道圖層。3.1創(chuàng)建形狀圖層創(chuàng)建后的空白形狀圖層效果。CityEngine的主菜單提供了簡單實(shí)用的手動(dòng)建模工具,用于手動(dòng)創(chuàng)建三維模型。在主菜單工具條上布局了常用的變換工具,街道建模工具,形狀建模工具和測量工具。其中形狀建模工具只能繪制基礎(chǔ)簡單的形狀,如需繪制復(fù)雜的形狀,需使用GIS軟件完成。3.2手動(dòng)建模工具主菜單中的手動(dòng)建模工具多邊形矩形圓形清理貼圖對齊地形形狀建模工具位于主菜單形狀(Shapes)中,主要包括:多邊形建模(PolygonShapeCreation),矩形建模(Rec.ShapeCreation),圓形建模(CircularShapeCreation),形狀細(xì)分(Subdivide),分離面(SeparateFaces),形狀融合(CombineShapes),形狀合并(UnionShapes),形狀裁剪(SubtractShapes),形狀偏移(OffsetShapes),移除孔洞(RemoveHoles),反向法線(ReverseNormals),設(shè)置首邊(SetFirstEdge),模型轉(zhuǎn)形狀(ConvertModelstoShapes),形狀貼圖(TextureShapes),形狀清理(CleanupShapes)和對齊地形(AlignShapestoTerrain)等。其中,多邊形建模,矩形建模,圓形建模,形狀貼圖,形狀清理和對齊地形等常用工具被布局在主菜單快捷工具條上。3.3形狀建模工具本課件僅對常用的多邊形建模、矩形建模、圓形建模、形狀切割、形狀貼圖、形狀細(xì)分、形狀融合、形狀合并、形狀裁剪、形狀偏移等工具進(jìn)行介紹,其他工具的詳細(xì)說明見教程第48~63頁。多邊形建模使用多邊形建模(PolygonShapeCreation)工具可繪制任意形狀的多邊形,通過推拉多邊形可創(chuàng)建三維幾何體。點(diǎn)擊Scene場景中的Shape形狀圖層,點(diǎn)擊多邊形建模快捷工具(PolygonShapeCreation),在3DView視圖中繪制多邊形,如果需要精確繪制,可以聯(lián)合數(shù)值輸入框(NumericalInput)中的輸入數(shù)值完成多邊形的繪制。3.3形狀建模工具在繪制多邊形時(shí),可通過按下鍵盤“A”鍵,使之在直線和弧段之間切換。當(dāng)處于弧段模式下,可使用鼠標(biāo)左鍵拖動(dòng)藍(lán)色球的位置來調(diào)整弧段方向,然后移動(dòng)鼠標(biāo)左鍵的位置來調(diào)整弧段半徑。另外,通過滑動(dòng)鼠標(biāo)滾輪可以更改弧段的邊數(shù)。(a)(b)多邊形建模3.3形狀建模工具使用多邊形建模工具不僅可以繪制平面形狀,還可以通過推拉的方式創(chuàng)建三維幾何體。使用鼠標(biāo)左鍵點(diǎn)擊工具條上的多邊形建模(PolygonShapeCreation)工具,然后將鼠標(biāo)指針懸停在多邊形的面或邊上,此時(shí)會(huì)出現(xiàn)橙色的可拖動(dòng)的球形手柄。用鼠標(biāo)左鍵按住該橙色球向多邊形的法線方向或切線方向進(jìn)行推拉,可創(chuàng)建三維形狀。當(dāng)使用鼠標(biāo)左鍵拖動(dòng)球形手柄時(shí),程序會(huì)自動(dòng)捕捉附近的頂點(diǎn)。如果需要精確建模,可配合使用數(shù)值輸入框(NumericalInput)。多邊形建模矩形建模使用距形建模(RectangularShapeCreation)工具可繪制任意尺寸的長方形,通過推拉長方形可創(chuàng)建長方體。點(diǎn)擊Scene場景中Shape形狀圖層,點(diǎn)擊矩形建模(Rec.ShapeCreation)工具,在3DView視圖中繪制距形,建模過程和多邊形建模類似。3.3形狀建模工具圓形建模使用圓形建模(CircularShapeCreation)工具可繪制任意尺寸的圓形,通過推拉圓形可構(gòu)建圓柱體。點(diǎn)擊Scene場景中Shape形狀圖層,點(diǎn)擊圓形建模(CircularShapeCreation)工具,在3DView視圖中繪制圓形,建模過程和多邊形建模類似。3.3形狀建模工具形狀切割綜合使用多邊形建模工具,矩形建模工具和圓形建模工具可實(shí)現(xiàn)任意形狀切割。(a)(b)(c)3.3形狀建模工具(a)(b)形狀貼圖形狀貼圖(TextureShapes)工具用于向選定形狀填充紋理圖片。選擇要填充紋理的形狀,然后點(diǎn)擊形狀貼圖按鈕,打開ShapeTexturingTool對話框,設(shè)置相關(guān)參數(shù),點(diǎn)擊Assign完成填充。3.3形狀建模工具形狀細(xì)分形狀細(xì)分(Subdivide)工具會(huì)根據(jù)輸入形狀計(jì)算出較小的形狀??梢允褂酶鞣N參數(shù)來實(shí)現(xiàn)不同的細(xì)分布局。該工具只能在靜態(tài)形狀上運(yùn)行。選中要細(xì)分的形狀,然后點(diǎn)擊主菜單的Shapes->Subdivide…,打開細(xì)分對話框,設(shè)置相應(yīng)參數(shù),點(diǎn)擊Apply完成操作。3.3形狀建模工具形狀細(xì)分參數(shù)說明形狀細(xì)分方式主要包括:遞歸(Recursive)(左圖)、偏移(Offset)(中圖)、骨架線(Skeleton)(右圖)和無細(xì)分(NoSubdivision)。遞歸細(xì)分偏移細(xì)分骨架線細(xì)分形狀細(xì)分工具各參數(shù)的詳細(xì)說明見教程第59頁。形狀融合形狀融合(CombineShapes)工具會(huì)將獨(dú)立的形狀融合為統(tǒng)一整體。(a)(b)(c)3.3形狀建模工具形狀合并形狀合并(UnionShapes)工具會(huì)將獨(dú)立子形狀合并為一個(gè)整體形狀,該工具和形狀融合工具不同,區(qū)別在于是否保留子形狀的邊界。3.3形狀建模工具形狀裁剪形狀裁剪(SubtractShapes)工具用于將相互重疊的形狀按重疊邊線進(jìn)行裁剪,裁剪結(jié)果和選中多邊形的次序有關(guān)。(b)(a)(c)矩形A矩形B3.3形狀建模工具形狀偏移形狀偏移(OffsetShapes)工具用于在初始形狀上按偏移距離縮放初始形狀,但會(huì)保留初始形狀。(b)(a)(c)在圓形內(nèi)執(zhí)行形狀偏移將產(chǎn)生圓環(huán)3.3形狀建模工具3.4變換工具移動(dòng)縮放旋轉(zhuǎn)變換工具位于主菜單編輯(Edit)中,主要包括:形狀移動(dòng)(MoveTool),形狀縮放(ScaleTool)和形狀旋轉(zhuǎn)(RotateTool)。變換工具被布局在主菜單快捷工具條上。在形狀上選中要移動(dòng)的要素,點(diǎn)擊形狀移動(dòng)(MoveTool)按鈕,會(huì)顯示黃色球形手柄,用鼠標(biāo)拖動(dòng)手柄移動(dòng)即可,如需精確移動(dòng),可在數(shù)值輸入框輸入x|y|z方向的偏移量。形狀移動(dòng)(a)(b)(c)移動(dòng)面移動(dòng)側(cè)邊移動(dòng)頂點(diǎn)3.4變換工具形狀縮放(ScaleTool)用于對形狀進(jìn)行縮小和放大,其具體操作和形狀移動(dòng)類似。選中要縮放的要素(體、面、邊),點(diǎn)擊形狀縮放(ScaleTool)按鈕執(zhí)行操作即可。形狀縮放縮放形狀體縮放側(cè)面縮放側(cè)邊(a)(b)(c)3.4變換工具形狀旋轉(zhuǎn)(RotateTool)用于對形狀進(jìn)行旋轉(zhuǎn),其具體操作和形狀移動(dòng)類似。選中要旋轉(zhuǎn)的要素(體、面、邊),點(diǎn)擊形狀旋轉(zhuǎn)(RotateTool)按鈕執(zhí)行操作即可。形狀旋轉(zhuǎn)旋轉(zhuǎn)形狀體旋轉(zhuǎn)面旋轉(zhuǎn)邊(a)(b)(c)3.4變換工具3.5測量工具測量工具位于主菜單編輯(Edit)中,用于輔助形狀建模和3D空間分析,主要包括:測量距離(MeasureDistance),測量面積和路徑(MeasureAreaandPath)。測量工具被布局在主菜單快捷工具條上。測量距離(MeasureDistance)工具用于測量形狀中任意指定兩點(diǎn)的距離。測量距離測量距離測量面積和路徑(a)(b)測量面積和路徑測量面積和路徑(MeasureAreaandPath)工具用于測量形狀中任意指定多邊形的面積和路徑長度(即多邊形的周長)。(a)(b)3.5測量工具3.6手動(dòng)三維建模示例——樓梯建模3m4.5m0.8m0.3m0.2m綜合使用手動(dòng)三維建模工具可構(gòu)建復(fù)雜的三維模型。本課件對應(yīng)的教程中給出了構(gòu)建樓梯的詳細(xì)過程(第67~70頁),最終樓梯建模的效果如下圖。第四章CGA規(guī)則建模CATALOG4.1CityEngine坐標(biāo)系4.2創(chuàng)建和使用CGA規(guī)則文件4.3CGA基本語法4.4CGA形狀編輯操作4.5CGA紋理貼圖操作4.6CGA屬性及屬性設(shè)置4.7CGA程序結(jié)構(gòu)與規(guī)則函數(shù)4.8CGA常用內(nèi)置函數(shù)4.9CGA注解與樣式4.1CityEngine坐標(biāo)系在CityEngine的三維建模中,無論是手動(dòng)建模還是CGA規(guī)則建模都會(huì)涉及到坐標(biāo)系,它不僅定義了模型的位置、方位,還控制著模型創(chuàng)建過程中每個(gè)面及邊點(diǎn)的定位,紋理貼圖的大小和位置。CityEngine的坐標(biāo)系部署在場景中,可在3D視圖中進(jìn)行可視化。CityEngine提供了五種不同的坐標(biāo)系,分別是世界坐標(biāo)系、場景坐標(biāo)系、對象坐標(biāo)系、樞軸坐標(biāo)系、范圍坐標(biāo)系。世界坐標(biāo)系世界坐標(biāo)系(WorldCoordinateSystem)是指整個(gè)場景所處的全局空間直角坐標(biāo)系,它以格網(wǎng)中粗十字線交點(diǎn)為原點(diǎn),它定義了每個(gè)形狀相對該原點(diǎn)的空間坐標(biāo)位置,其空間范圍最廣。世界坐標(biāo)系具有三個(gè)分量,分別為x、y、z軸。其中y軸指向向上,x軸指向正東,z軸指向正南。它們可在視圖設(shè)置中,通過顯示坐標(biāo)軸、格網(wǎng)和羅盤進(jìn)行可視化。世界坐標(biāo)系的軸向在3D視圖中和CityEngine坐標(biāo)系(CityEngineCS)的軸向一致。4.1CityEngine坐標(biāo)系場景坐標(biāo)系場景坐標(biāo)系(SceneCS)是指整個(gè)場景所處的地理坐標(biāo)系,它通常以地球赤道和投影帶的中央經(jīng)線的交點(diǎn)為原點(diǎn),它定義了每個(gè)形狀相對該原點(diǎn)的地理空間參考,其空間范圍限于投影平面內(nèi)。場景坐標(biāo)系具有三個(gè)分量,分別為x、y、z軸。其中z軸指向向上,x軸指向正東(經(jīng)度向),y軸指向正北(緯度向)。它們可在視圖設(shè)置中,通過顯示坐標(biāo)軸、格網(wǎng)和羅盤進(jìn)行可視化。場景坐標(biāo)系的軸向在3D視圖中可通過視圖設(shè)置(Viewsettings)->查看坐標(biāo)系(Viewcoordinatesystem)進(jìn)行查看。4.1CityEngine坐標(biāo)系通常,每個(gè)形狀都具有一個(gè)局部坐標(biāo)系,用于標(biāo)識自身的坐標(biāo)方向,便于使用變換工具進(jìn)行處理,稱之為對象坐標(biāo)系(ObjectCoordinateSystem)。其原點(diǎn)設(shè)置在初始形狀的首邊的第一個(gè)點(diǎn)上,并且軸向定義為x軸沿著第一條邊,y軸沿著第一面的法線,z軸垂直于xy平面。對象坐標(biāo)系對象坐標(biāo)系具有位置和方向?qū)傩?,可通過initialShape.origin.p{x|y|z}屬性獲取對象相對于世界坐標(biāo)系原點(diǎn)的位置,通過initialShape.origin.o{x|y|z}獲取對應(yīng)方向。4.1CityEngine坐標(biāo)系樞軸坐標(biāo)系4.1CityEngine坐標(biāo)系樞軸坐標(biāo)系(PivotCoordinateSystem)用于描述對象中每個(gè)子形狀的位置狀態(tài),它基于對象空間坐標(biāo)系定義了每個(gè)子形狀相對于對象坐標(biāo)系原點(diǎn)的位置。樞軸坐標(biāo)系的原點(diǎn)設(shè)置在子形狀首邊的第一個(gè)點(diǎn)上,并且沿著首邊的方向定義為x軸,沿著第一面的法線方向定義為y軸,沿著xy平面的法線方向定義為z軸。樞軸坐標(biāo)系具有樞軸屬性,可通過pivot.p{x|y|z}屬性獲取樞軸位置,通過pivot.o{x|y|z}獲取樞軸方向。每個(gè)形狀都有一個(gè)關(guān)聯(lián)的范圍坐標(biāo)系(ScopeCoordinateSystem)。他基于樞軸空間坐標(biāo)系定義了形狀的邊界框尺寸。典型的形狀變換會(huì)在范圍坐標(biāo)系上運(yùn)行。范圍坐標(biāo)系具有范圍屬性,可通過scope.t{x|y|z}屬性獲取形狀的平移向量,通過scope.r{x|y|z}獲取形狀的旋轉(zhuǎn)向量,通過scope.s{x|y|z}獲取形狀的尺寸向量,通過scope.elevation獲取形狀的高度。范圍坐標(biāo)系4.1CityEngine坐標(biāo)系各坐標(biāo)系之間的關(guān)系世界坐標(biāo)系(原點(diǎn))對象坐標(biāo)系(原點(diǎn))樞軸坐標(biāo)系(原點(diǎn))范圍坐標(biāo)系范圍坐標(biāo)系樞軸坐標(biāo)系對象坐標(biāo)系世界坐標(biāo)系場景坐標(biāo)系()4.2創(chuàng)建和使用CGA規(guī)則文件在rules文件夾上,點(diǎn)擊鼠標(biāo)右鍵選擇New->CGARuleFile,打開CGARuleFile對話框,輸入文件名,點(diǎn)擊Finish結(jié)束。編輯新創(chuàng)建的規(guī)則文件代碼如下。version

"2019.0"http://版本號@startRule//顯式聲明起始規(guī)則//Lot為起始形狀Lot-->extrude(10)//拉伸10m

color("#00FF00")//填充綠色

X.

//X.為終端形狀選擇繪制的矩形地塊,點(diǎn)擊Inspector屬性框中的Shape面板,設(shè)置Rules相應(yīng)參數(shù),或在主工具條上點(diǎn)擊分配規(guī)則文件(Assignrulefile)按鈕選擇規(guī)則起始結(jié)點(diǎn)。點(diǎn)擊主工具條中的Generate按鈕,生成三維模型。(a)(b)在形狀圖層上使用矩形建模工具繪制尺寸為20m*20m的矩形形狀。

CGA規(guī)則的表達(dá)CGA規(guī)則的基本思想是用多個(gè)新形狀替換具有特定形狀符號的舊形狀,基本語法:PredecessorShape-->SuccessorPredecessorShape為前驅(qū)形狀,由形狀符號標(biāo)識,“-->”表示執(zhí)行規(guī)則,Successor為后繼形狀,由形狀操作和形狀符號構(gòu)成。形狀操作會(huì)更改當(dāng)前形狀,形狀符號會(huì)創(chuàng)建當(dāng)前形狀的副本(帶有新的形狀符號),并將其作為活動(dòng)形狀添加到形狀樹中。如果存在新形狀符號的規(guī)則,則隨后導(dǎo)出新形狀,否則它將成為葉子形狀。4.3CGA基本語法注意:CGA規(guī)則區(qū)分字母大小寫B(tài)形狀C形狀定義下面CGA規(guī)則:A->Bt(30,0,0)C.在上述規(guī)則執(zhí)行過程中,首先創(chuàng)建A形狀的副本,并將其形狀符號設(shè)置為B和C。其中B形狀沒有任何的操作,C形狀具有平移t()操作,即將其沿x軸移動(dòng)30個(gè)單位。如果沒有匹配B形狀的規(guī)則,則生成過程結(jié)束,但此時(shí)B形狀會(huì)提示“未定義規(guī)則(UndefinedRule)”的警告。C形狀后面加了“.”表示該形狀為終端形狀,之后再有關(guān)于C形狀的規(guī)則不再執(zhí)行。執(zhí)行上述規(guī)則相當(dāng)于對模型A進(jìn)行了復(fù)制和平移操作。

CGA起始規(guī)則每一個(gè)CGA規(guī)則文件都有一個(gè)或多個(gè)起始規(guī)則入口,用于顯式標(biāo)識規(guī)則的起始運(yùn)行,基本語法:@StartRuleLot-->SuccessorLot為CGA規(guī)則初始形狀符號缺省名稱,可以任意定義。當(dāng)存在多個(gè)規(guī)則時(shí),應(yīng)使用注解@StartRule為起始規(guī)則作顯式聲明。Successor為后繼形狀。4.3CGA基本語法//初始形狀:20m*20m@startRule//顯式聲明起始規(guī)則Lot1-->AA-->extrude(20)@startRule//顯式聲明起始規(guī)則Lot2-->extrude(15)B@startRule//顯式聲明起始規(guī)則Lot3-->extrude(10)color(1,0,0)C.Lot1初始形狀生成了A形狀A(yù)形狀執(zhí)行了拉伸操作(A形狀后面沒有形狀符,默認(rèn)為A形狀)Lot2初始形狀生成了B形狀,B形狀執(zhí)行了拉伸操作Lot3初始形狀生成了C形狀,C形狀執(zhí)行了拉伸和著色操作,且C形狀為終端形狀,標(biāo)識該形狀規(guī)則的終止CGA起始規(guī)則示例在編寫CGA規(guī)則之前,CityEngine提供了version關(guān)鍵字來定義為其編寫規(guī)則的版本號,以此檢測潛在的代碼不兼容性。這種不兼容性主要由新功能函數(shù)和現(xiàn)有功能函數(shù)的不匹配導(dǎo)致。盡管前者相對來說沒有太大問題,但后者通常是不希望的,僅在需要糾正明顯的錯(cuò)誤或其它缺點(diǎn)時(shí)才會(huì)發(fā)生。有關(guān)潛在不兼容性的警告會(huì)寫入日志。關(guān)于CGA版本之間的更改的描述,可參見CGA更改日志。版本號4.3CGA基本語法行注釋:在注釋內(nèi)容前面使用//

或#

字符。段落注釋:在注釋內(nèi)容前后使用/*…*/

字符。行內(nèi)注釋:在CGA語句中對需要注釋的內(nèi)容添加/*…*/

字符。CGA提供了三種注釋方式,分別是行注釋、段落注釋和行內(nèi)注釋。version

"2019.0"

//版本號//行注釋,使用C注釋符#行注釋,使用Python注釋符/*段落注釋,使用C注釋符*/@StartRule//@注解符,顯式聲明規(guī)則起始形狀

Lot-->//Lot為起始形狀

extrude/*拉伸10m*/(10)

X.

//X.為終端形狀

CGA注釋4.3CGA基本語法4.4CGA形狀編輯操作拉伸操作extrude()操作用于將形狀沿著面法線或拉伸類型指定的方向進(jìn)行拉伸,通常將地塊向上擠出一個(gè)高度,基本語法:

extrude(distance)extrude(extrusionType,distance)參數(shù)說明見教程第84頁。//初始形狀:20m*20m矩形Lot-->

extrude(y,20)

A.顏色操作color()函操作用于給形狀著色,基本語法:

color(s)color(r,g,b)color(r,g,b,o)@StartRuleLot-->

extrude(20)

color("#FFCC00")A.

@StartRuleInit-->

extrude(20)

color(0.5,1,0,0.4)B.

參數(shù)說明見教程第85頁。4.4CGA形狀編輯操作錐體操作taper()操作用于將形狀沿著面法線拉伸為錐體形狀,基本語法:taper(distance)//初始形狀:20m*20m矩形Lot-->

taper(20)

color(0.5,0.5,0.5)

A.參數(shù)說明見教程第86頁。4.4CGA形狀編輯操作內(nèi)部矩形操作innerRectangle()操作用于尋找?guī)缀误w中平行于scopeY軸和scopeX軸幾何范圍面積最大的矩形,基本語法:

innerRectangle(alignment){selectoroperatoroperations|selectoroperatoroperations}參數(shù)說明見教程第86頁。4.4CGA形狀編輯操作//初始形狀:20m*20m,不規(guī)則矩形Lot-->

innerRectangle(edge){shape:extrude(10)

color(0.5,0.5,0.5,0.3)

A.

|remainder:color(0,1,0)B.

}原生四邊形操作primitiveQuad()操作用于在當(dāng)前形狀范圍內(nèi)生成一個(gè)四邊形幾何體,基本語法:primitiveQuad()primitiveQuad(width,length)參數(shù)說明見教程第87頁。4.4CGA形狀編輯操作//初始形狀:20m*20m,不規(guī)則矩形Lot-->

primitiveQuad(10,15)

extrude(10)

color(0,1,0,0.3)

X.原生圓形操作primitiveDisk()操作用于在當(dāng)前形狀范圍內(nèi)生成一個(gè)圓形幾何體,基本語法:primitiveDisk()primitiveDisk(nVertices)primitiveDisk(nVertices,radius)參數(shù)說明見教程第88頁。4.4CGA形狀編輯操作//初始形狀:20m*20m,不規(guī)則矩形Lot-->

primitiveDisk(16,6)

extrude(10)

color(0,1,0,0.3)

X.原生立方體操作primitiveCube()操作用于在當(dāng)前形狀范圍內(nèi)生成一個(gè)長方體,基本語法:primitiveCube()primitiveCube(width,height,depth)參數(shù)說明見教程第88頁。4.4CGA形狀編輯操作//初始形狀:20m*20m,不規(guī)則矩形Lot-->

primitiveCube(8,8,8)

color(0,1,0,0.3)

X.原生球體操作primitiveSphere()操作用于在當(dāng)前形狀范圍內(nèi)生成一個(gè)球體,基本語法:primitiveSphere()primitiveSphere(sides,divisions)primitiveSphere(sides,divisions,radius)參數(shù)說明見教程第89頁。4.4CGA形狀編輯操作//初始形狀:20m*20m矩形Lot-->

primitiveSphere()

color(0,1,0)

X.原生柱體函數(shù)primitiveCylinder()操作用于在當(dāng)前形狀范圍內(nèi)生成一個(gè)圓柱體,基本語法:primitiveCylinder()primitiveCylinder(sides)primitiveCylinder(sides,radius,height)4.4CGA形狀編輯操作//初始形狀:20m*20m矩形Lot-->

primitiveCylinder(16,5,10)

color(0,1,0)

X.參數(shù)說明見教程第90頁。原生錐體操作primitiveCone()操作用于在當(dāng)前形狀范圍內(nèi)生成一個(gè)圓錐體,基本語法:primitiveCone()primitiveCone(sides)primitiveCone(sides,radius,height)參數(shù)說明見教程第91頁。4.4CGA形狀編輯操作//初始形狀:20m*20m矩形Lot-->

primitiveCone(16,5,10)

color(0,1,0)

X.插入外部模型操作i()操作用于插入外部3D模型(一般是單體或小品模型)到當(dāng)前形狀中,基本語法:i(geometryPath)i(geometryPath,upAxisOfGeometry)i(geometryPath,upAxisOfGeometry,insertMode)參數(shù)說明見教程第91頁。4.4CGA形狀編輯操作//初始形狀:20m*20m矩形Lot-->i("models/tree/tree.obj")

T.組件操作comp()操作用于從模型中分離出滿足一定條件的面、邊或點(diǎn)模型,基本語法:comp(compSelector){selectoroperatoroperations|selectoroperatoroperations...}

4.4CGA形狀編輯操作參數(shù)說明見教程第92頁。//初始形狀:40m*40m矩形Lot-->

extrude(40)

comp(f){

front:color(1,0,0)FrontFacade.

|top:color(0,0,1)TopFacade.|side:color(0,1,0)SideFacade.

}前面?zhèn)让骓斆媲懈畈僮鱯plit()操作用于將形狀沿著特定方向切割為若干子形狀,CityEngine提供了兩種切割類型,分別為基于笛卡爾空間和紋理空間。其中,笛卡爾空間中的spit()操作,基本語法:split(splitAxis){size1:operations1|size2:operations2|...|sizen-1:operationsn-1}split(splitAxis){size1:operations1|size2:operations2|...|sizen-1:operationsn-1}*split(splitAxis,adjustSelector){size1:operations1|...|sizen-1:operationsn-1}split(splitAxis,adjustSelector){size1:operations1|...|sizen-1:operationsn-1}*4.4CGA形狀編輯操作參數(shù)說明見教程第96頁。//初始形狀:40m*40m矩形Lot-->

extrude(40)

split(y){20:color(1,0,0)A.

|15:color(0,0,1)B.|~5:color(0,1,0)C.

}切割操作示例//初始形狀:40m*40m矩形Lot-->

extrude(40)

split(y){20:color(1,0,0)A|15:color(0,0,1)B|~5:color(0,1,0)C.

}A-->

split(y){~5:D.}*B-->

split(x){2:E.|{4:E.}*|2:E.}切割面積操作splitArea()操作用于將形狀按面積大小切割為若干子形狀,基本語法為:

splitArea(splitAxis){area1:operations1|...|arean-1:operationsn-1}splitArea(splitAxis){area1:operations1|...|arean-1:operationsn-1}*splitArea(splitAxis,adjustSelector){area1:operations1|...|arean-1:operationsn-1}splitArea(splitAxis,adjustSelector){area1:operations1|...|arean-1:operationsn-1}*參數(shù)說明見教程第100頁。4.4CGA形狀編輯操作//初始形狀:40m*40m矩形Lot-->

splitArea(x){'0.5:extrude(20)A.|'0.3:extrude(10)B.|~5:extrude(15)C.

}偏移操作offset()操作用于將多邊形內(nèi)縮與外放,基本語法:

offset(offsetDistance)offset(offsetDistance,offsetSelector)參數(shù)說明見教程第101頁。4.4CGA形狀編輯操作//初始形狀:40m*40m矩形Lot-->

primitiveDisk(32,18)

offset(2,border)

extrude(10)

color(1,0,0)

X.退步操作setback()操作用于多邊形的內(nèi)縮,基本語法:setback(setbackDistance){selectoroperatoroperations|selectoroperatoroperations...}setback(setbackDistance,uvSet){selectoroperatoroperations|selectoroperatoroperations...}4.4CGA形狀編輯操作參數(shù)說明見教程第102頁。//初始形狀:40m*40m矩形Lot-->

setback(5){side:Garten

|remainder:Building

}

/*設(shè)置后退距離5米,后退的這部分作為綠地Garten,剩余的作為Building*/

Garten-->color("#00ff00")

extrude(1)X.

Building-->offset(-2,inside)

extrude(20)Y.退步操作示例L型操作shapeL()操作用來繪制L型形狀,基本語法:shapeL(frontWidth,leftWidth){selectoroperatoroperations|selectoroperatoroperations}4.4CGA形狀編輯操作參數(shù)說明見教程第105頁。//初始形狀:40m*40m矩形Lot-->

shapeL(20,10){shape:building|remainder:grass

}building-->

extrude(20)color(“#6892D7”)grass-->

extrude(1)color(0,1,0)U型操作shapeU()操作用來繪制U型形狀,基本語法:shapeU(frontWidth,rightWidth,leftWidth){selectoroperatoroperations|selectoroperatoroperations}4.4CGA形狀編輯操作參數(shù)說明見教程第106頁。//初始形狀:40m*40m矩形Lot-->

shapeU(20,10,5){shape:building|remainder:grass

}building-->

extrude(20)color("#6892D7")grass-->

extrude(1)color(0,1,0)O型操作shapeO()操作用來繪制O型形狀,基本語法:

shapeO(frontWidth,rightWidth,backWidth,leftWidth){selectoroperatoroperations|selectoroperatoroperations}4.4CGA形狀編輯操作參數(shù)說明見教程第107頁。//初始形狀:40m*40m矩形Lot-->

shapeO(16,10,8,4){shape:buildingremainder:grass

}building-->

extrude(20)color("#6892D7")grass-->

extrude(1)color(0,1,0)隨機(jī)點(diǎn)操作scatter()操作用于在一定范圍內(nèi)生成一定數(shù)量的隨機(jī)點(diǎn),基本語法:scatter(domain,nPoints,distributionType){operations}scatter(domain,nPoints,gaussian,scatterMean,scatterStddev){operations}4.4CGA形狀編輯操作參數(shù)說明見教程第109頁。//初始形狀:40m*40m矩形@startRuleLot-->

scatter(surface,10,gaussian,center,20){

tree

}

tree-->

s(4,8,4)

i("models/tree/tree.obj")

color(0,1,0)鏡像操作mirror()函數(shù)用于將當(dāng)前形狀進(jìn)行鏡像處理,基本語法:

mirror(xFlip,yFlip,zFlip)4.4CGA形狀編輯操作參數(shù)說明見教程第115頁。//初始形狀:40m*40m矩形Lot-->

i("models/tree/tree.obj")

color(0,1,0)

mirror(false,true,false)(a)(b)平移操作t()操作用于將形狀沿指定長度進(jìn)行平移,基本語法:t(tx,ty,tz)//初始形狀:40m*40m矩形Lot-->

extrude(20)

color(1,0,0,0.5)

t(-30,0,30)

X.參數(shù)說明見教程第116頁。4.4CGA形狀編輯操作縮放操作s()操作用于將形狀沿指定大小進(jìn)行縮放,基本語法:

s(xSize,ySize,zSize)

s(‘xSize,‘ySize,‘zSize)4.4CGA形狀編輯操作參數(shù)說明見教程第117頁。//初始形狀:40m*40m矩形Lot-->

extrude(20)

color(1,0,0,0.5)

s(20,20,20)

X.旋轉(zhuǎn)操作r()操作用于將形狀沿指定角度進(jìn)行旋轉(zhuǎn),基本語法:r(xAngle,yAngle,zAngle)r(centerSelector,

xAngle,yAngle,zAngle)4.4CGA形狀編輯操作參數(shù)說明見教程第118頁。#初始形狀:20m*5m矩形Lot-->

extrude(10)

split(y){

1:r(0,120*split.index/split.total,0)X.

}*居中操作center()操作用于設(shè)置變換后的形狀處于初始形狀的中心,基本語法:center(axesSelection)參數(shù)說明見教程第120頁。4.4CGA形狀編輯操作//初始形狀:40m*40m矩形Lot-->

s('0.6,'1,'0.6)

extrude(20)

center(xz)

A.NIL操作NIL操作用于從形狀樹中刪除當(dāng)前形狀,基本語法:NIL//初始形狀:20m*20m矩形Lot-->

split(x){2:extrude(10)X.|1:NIL

}*4.4CGA形狀編輯操作單坡屋頂操作roofShed()操作用于生成單坡屋頂形狀,基本語法:roofShed(angle)roofShed(angle,index)4.4CGA形狀編輯操作參數(shù)說明見教程第121頁。//初始形狀:20m*10m矩形Lot-->

extrude(10)

comp(f){top:Top|side:X.

}Top-->

roofShed(20,0)color(1,0,0)雙坡屋頂操作roofGable()操作用于生成雙坡屋頂形狀,基本語法:

roofGable(angle)roofGable(angle,overhangX)roofGable(angle,overhangX,overhangY)4.4CGA形狀編輯操作參數(shù)說明見教程第122頁。//初始形狀:20m*10m矩形Lot-->

extrude(10)

comp(f){top:Top|side:X.

}Top-->

roofGable(20,1,0.5)color(1,0,0)四坡屋頂操作roofHip()操作用于生成四坡屋頂形狀,基本語法:roofHip(angle)roofHip(angle,overhang)4.4CGA形狀編輯操作參數(shù)說明見教程第123頁。//初始形狀:20m*10m矩形Lot-->

extrude(10)

comp(f){top:Top|side:X.

}Top-->

roofHip(20,1)color(1,0,0)金字塔屋頂操作roofPyramid()操作用于生成金字塔屋頂形狀,基本語法:roofPyramid(angle)4.4CGA形狀編輯操作參數(shù)說明見教程第124頁。//初始形狀:20m*10m矩形Lot-->

extrude(10)

comp(f){top:Top|side:X.

}Top-->

roofPyramid(20)color(1,0,0)設(shè)置投影操作setupProjection()操作用于設(shè)置紋理的大小及紋理對應(yīng)的紋理坐標(biāo)系圖層,基本語法:setupProjection(uvSet,axesSelector,texWidth,texHeight)setupProjection(uvSet,axesSelector,texWidth,texHeight,widthOffset,heightOffset)setupProjection(uvSet,axesSelector,texWidth,texHeight,widthOffset,heightOffset,uwFactor)4.5CGA紋理貼圖操作參數(shù)說明見教程第130頁。投影UV操作projectUV()操作根據(jù)相應(yīng)的投影矩陣來創(chuàng)建所選UV集合的紋理坐標(biāo),基本語法:projectUV(uvSet)4.5CGA紋理貼圖操作參數(shù)說明見教程第13

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論