1. 程式人生 > >CityEngine基於規則貼圖的實現技巧(二)

CityEngine基於規則貼圖的實現技巧(二)

通過內部規則控制實現紋理貼圖,主要是指採用texture的方式進行貼圖。在使用texture進行貼圖的過程中其最關鍵的在於約束texture引入的圖片所代表的實際大小和其擺放的位置等資訊,因而就產生了控制圖片代表實際尺寸、圖片重複的次數兩種方式的貼圖。下面就針對這兩種方式進行簡單的介紹。
控制圖片代表的實際尺寸
適用範圍:主要指建築物、護欄等的貼圖。
引用的規則程式碼:
Lot-->
   extrude(10)
   comp(f){front:ftFacade | all:X}
ftFacade-->
   setupProjection(0,scope.xy,scope.sx/rint(scope.sx/2.5),scope.sy/rint(scope.sy/1.5))
   texture("WINDOW_02.jpg")
   projectUV(0)
與貼圖相關的規則介紹:
setupProjection(uvSet,axeSelector,texWidth,texHeight)
該規則主要是對texture所引入的圖片進行了約束,其中uvSet的取值範圍[0,5],分別代表不同的Texture Layer,一般選0值;axesSelector確定了貼圖時圖片的U向和V向,texWidth和texHeight分別代表圖片的尺寸所對應的實際的寬度和高度。
texture(string texturePath)
該規則引入相應的貼圖。
projectUV(uvSet)
該規則通過應用相應的投影矩陣建立最終的紋理座標。與3D Max的塌陷功能有點類似。