在制作路牌这类具有外观相同的模型时,为了避免繁琐往复的劳动可以采用CityEngine通过引入外部模型的方式实现自动贴图。这样不仅可以保证模型的精细,同时也实现了模型的批量高效建模。涉及的技术点主要包括:外部模型的引入,最大面的获取以及针对不同的面进行贴图。其规则如下:
/**
* File:
rule02.cga
* Created: 18 Sep 2012 01:59:54 GMT
* Author: Xrk
*/
version
"2011.2"
attr
maxPgArea=0
//记录所有面的最大值
attr
maxbh=0
//记录最大面值的索引号
attr
tietuPath=
fileRandom("assets/tietu*.jpg")
//获取随机贴图(此处也可与属性相连)
Point-->
//外部模型引入
s(0,7,0)
i("2.obj")
comp(f){all:PointRoadSign
PointSign}
PointRoadSign-->
//获取最大面的索引
case
geometry.area<maxPgArea:
NIL
else:
set(maxPgArea,geometry.area())
set(maxbh,comp.index)
PointRoadSign
PointSign-->
//贴图实现
case
comp.index==maxbh:
//当面积为最大面时进行贴图
setupProjection(0,scope.xy,'1,'1)
texture(tietuPath)
projectUV(0)
scaleUV(0,1,-1)
else:
setupProjection(0,scope.xy,1,1)
texture("4_61ld100002.jpg")
projectUV(0)
点评:通过属性来获取贴图的路径可以实现具有相同外观的模型采用外部模型引入的方式在CityEngine通过规则批量贴图,如何应用等待你来挖掘。
练习数据: