當我們走在城市的大街上,經常會看到很多棟寫字樓,其外牆大多都是玻璃材質的,使得建築更有質感。在本文中,我們利用CityEngine實作玻璃材質反光效果。首先,需要确定做什麼樣的效果?一是玻璃效果(即透明),二是反光。
在CityEngine中提供了“Material”設定,即材質。其屬性包括如下,本文用到了紅框内的屬性。
編寫規則如下:
version "2012.1"
#屬性參數定義
attr Floor=10
attr Floor_Height=3
attr Groundfloor_Height=4
attr HighBuilding_Color="#6892d7"
#變量定義
Building_Height=Floor*Floor_Height
const Tile_Width=1.8
const FloorTop_Hight=0.1
const Frame_Width=0.08
@StartRule
#生成建築結構
Lot-->
extrude(Building_Height)
HighBuilding
#切分出第一層和上面樓層
HighBuilding-->
split(y){Groundfloor_Height:FloorVolume|{~Floor_Height:FloorVolume}*}
#拆分出每個樓層的地面和側面
FloorVolume-->
comp(f) {top : offset(-0.1, inside) FloorTop|side:FloorSides}
#樓層地面填充顔色
FloorTop --> color(0.5,0.5,0.5)
#側面生成玻璃窗戶
FloorSides -->
split(x) {~Tile_Width : FloorTile }*
FloorTile -->
offset(-Frame_Width/2)
comp(f) {border : color(0.2,0.2,0.2) Frame. | inside : Glass}
#制作玻璃反光效果
Glass -->
color(HighBuilding_Color)
set(material.opacity, 0.4)
#鏡面反射
set(material.specular.r,0.6)
set(material.specular.g,0.6)
set(material.specular.b,0.6)
set(material.shininess,50)
#反射率
set(material.reflectivity, 0.2)
生成效果圖:
練習資料:下載下傳
更多關于材質的屬性設定,可以在CityEngine幫助中搜尋“material”關鍵字來檢視。