全部的cityengine学习步骤(2)

2019-04-17 00:12

extrude(rand(15,50) (random是随机生成的意思,rand(15,50)是系统随机生成15米到50米高的楼房 )

comp(f){front:Front|side:Side|top:Top} Front-->

//color(0.8,0.1,0.2)

split(y){4:F1|{~3:F2}*|~3:F3} F3-->

split(x){{~3:window}*} F1-->

split(x){{~3:window}*|3:door|{~3:window}*} door--> color(0,1,0)

window-->

split(y){~1:wall|~2:windows|~1:wall} windows-->

split(x){~0.5:wall|~2:windw1|~0.5:wall} windw1-->

//texture(fileRandom(\color(0,1,1) wall--> color(1,0,0) extrude(0.15) F2-->

split(x){{~3:window}*} Side-->

//color(0,0,1)

split(y){4:F|{~3:F2}*} F-->

split(x){{~3:window}*} Top-->

color(0.1,0.5,0) offset(0.15) w w-->

comp(f) { inside: I| border: O1 } O1-->

extrude(-1) color(1,0,0)

随机生成贴图的房子(不完美) Lot-->

extrude(rand(12,30))

comp(f){front:Front|side:Side|top:Top} Front-->

split(y){4:firstF|{~3:secondF}*} firstF-->

split(x){{~3:window}*|3:door|{~3:window}*} window--> offset(-0.8) A A-->

comp(f) { inside: I | border: O } I-->

setupProjection(0, scope.xy, scope.sx, scope.sy) projectUV(0)

texture(fileRandom(\ //color(0,1,1) O-->

//setupProjection(0, scope.xy, scope.sx, scope.sy) projectUV(0)

texture(fileRandom(\ //color(1,1,0) extrude(0.3)

//secondF--> //extrude(0.3) door-->

setupProjection(0, scope.xy, scope.sx, scope.sy) projectUV(0)

texture(fileRandom(\

//color(1,0,0.5) Top-->

offset(0.3) w w-->

comp(f) { inside: I1| border: O1 } I1-->

color(1,1,0) O1-->

projectUV(0)

texture(fileRandom(\ //color(1,1,0) extrude(-1) //color(1,1,0) secondF-->

split(x){{~3:window}*} Side-->

split(y){4:firstF1|{~3:secondF}*} firstF1-->

split(x){{~3:window}*}

精细模型:

解决了:

(1)窗户怎么凹陷?

(2)每一层的距离和房间距离怎么等分? (3)房顶怎么生成? (4)怎么随机贴图?

(5)随机函数在楼高中的应用?

(6)前边有大门,而side没有门时怎么生成/ (7)随机生成贴图时,怎么保证四周贴图一置? (8)怎么是生成的贴图无缝连接?

Lot--> extrude(47)

comp(f){side : Facade top : X }

Facade-->

split(y) { { ~1 : X |~8 : Floor }* |~1 : X }

{沿Y方向上分割一米的低沿儿加上八米的楼层高循环;最后再加上一米的上沿儿如图} Floor-->

split(x) { { ~1 : X |~5 : Window }* |~1 : X } {沿X方向上1米和5米循环分割最后再加上1米的边儿} 经过XY两个方向上的分割生成图(a) Window--> i(\

{最后加上贴图生成如图(b)}

Y

X (a) (b)

Lot-->

extrude(20) split(x) {

2 : color(\2 : set(material.color.r, 1.0) set(material.color.g, 0) set(material.color.b, 0) X }

Lot--> lot1 lot2

lot1-->color(1,0,0) 注:底面颜色红 lot2-->

rotateScope(0,30,0) 注:Scope发生了旋转 color(0,1,0) 注:拉伸颜色绿 innerRect extrude(5)

在viewport 上画一个面即可


全部的cityengine学习步骤(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:论述中国古代科技落后的原因一

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: