cityEngine学习笔记(四)

2019-07-31 17:01:31 浏览数 (1)

几何体创建

替换函数(i)

功能

用已有的模型或者部件替换当前的模型。可以实现用很少的规则实现复杂几何体的生成。

通过这个函数,可以将某些不规则的/地标性建筑通过手动交互式建模的方式建好,然后通过i函数导入即可。毕竟规则化建模适用于相对规则的建筑物,对于一些造型比较别致的,交互的方式可能会更好一些。

概要

i(geometryPath)

参数

geometryPath:指模型或模型部件的路径。

示例
代码语言:javascript复制
Lot-->
    i("assets/test.obj")
替换结果

屋顶函数

ce中有四种屋顶类型,包括单坡式(roofShed)、双坡式(roofGable)、四坡式(roofHip)以及金字塔顶(roofPyramid)。

单坡式(roofShed)

概要

roofShed(angle) roofShed(angle,index)

参数

angle:屋顶的坡脚; index:坡顶的起始边的索引值 注意事项:规则后有个“.”符号。这个点表示,到此结束!

双坡式(roofGable)

概要

roofGable(angle) roofGalbe(angle,overhangX) roofGable(angle, overhangX, overhangY) roofGable(angle, overhangX, overhangY, even) roofGable(angle, overhangX, overhangY, even, index)

参数

angle:屋顶的坡角; overhangX:延伸出来的屋檐的宽度; overhangY:坡面左右方向延伸出来的宽度; even:有两个值true和false,当为true时严格按照坡角生成,不满足条件的地方变成平的; index:边的索引值,调整该值可以改变山墙的位置,索引值处及其相对的边为山墙。 你知道山墙是什么嘛?现在的高楼大厦,基本看不到山了。这个名词,让我想起了我们的村子。

四坡式(roofHip)

概要

roofHip(angle) roofGable(angle, overhang) roofGable(angle, overhangX, even)

参数

angle:屋顶的坡角; overhang:延伸出来屋檐的宽度; even:与双坡的一样。

金字塔式(roofPyramid)

概要

roofPyramid(angle)

参数

angle:屋顶的坡角;

屋顶生成结果

屋顶函数示例

代码语言:javascript复制
Lot-->
    extrude(10)
    extrudeModel

extrudeModel -->
    comp(f) { side : SplitModel | top : ColorTopFacade }

SplitModel -->
    split(y){4:color(0,1,0) GroundFloor. | 3:color(1,1,0)MidFloor. | 3:color(1,0,0) TopFloor.}

ColorTopFacade -->
    color(0,1,1)
    TopFacade

TopFacade-->
    #单坡式
    40%:color(rand(),rand(),rand()) roofShed(10)
    #双坡式
    20%:color(rand(),rand(),rand()) roofGable(30,0.3,0.5)
    #四坡式
    20%:color(rand(),rand(),rand()) roofHip(30,0.5)
    #金字塔式
    else:color(rand(),rand(),rand()) roofPyramid(30)

0 人点赞