1. 程式人生 > >CityEngine小區模型製作初探

CityEngine小區模型製作初探

SideFacade-->
  case comp.index==1:NIL
  else:Building
 
從上面的結果可以看出CityEngine裡對面的讀取是按逆時針讀取的,由於ArcGIS裡對資料的記錄與方向無關決定了匯入到CE的ARCGIS資料與我們在ArcGIS裡製作時的方向是無關的(只與起點相關)。
2. 貼圖的實現
Rooftexture-->
  setupProjection(0,scope.xy,4,4)
  texture("Roof_01.png")
  projectUV(0)
 
上面是對屋頂貼圖的實現的規則檔案及貼圖後的效果,從效果做如下幾點推測:
 在貼圖的過程中,每個面會自動的賦予一個二維的軸向即X、Y;
 可以通過貼圖的尺寸合理的控制其與實際的比例,也可以通過面實際的寬高(scope.sx\scope.sy)來控制其合理性。
3.根據國內的模型極具對稱的特色,想談一下中心面的獲取的問題(奇數個面)。

首先對中心面個人做一個定義:簡而言之就是在一組面中居於中心的面為中心面。中心面的獲取可以方便的建立起貼圖與模型位置之間的關係,對於模型貼圖的實現有至關重要的作用。
以FrontFacades(7個面)為例來看一下起點對中心面獲取產生的影響。
   
          起點為front面最左邊的點                         起點為front面左靠上的點
Lot-->
  extrude(10)
  comp(f){front:FrontFacade}
FrontFacade-->
  case comp.index==comp.total-(comp.total-1)/2:NIL
  else:Building
通過以上程式碼看產生的不同效果:
 
                                         左起點
 
                                                 左上起點
從上面的例子中可以看出在面的讀取過程起始點的選擇對與CGA程式碼的編寫是有一定的影響的。