CityEngine2012实现模型的优化

冗余的节点和面会影响三维场景运行的流畅度,CityEngine2012新增的cleanupGeometry规则和Cleanup Shape功能可以快速方便的对模型进行优化。下面结合外部导入的模型来分别看一下这两种方式在CityEngine2012中如何使用。
1 cleanupGeometry规则
首先简要介绍一下:cleanupGeometry(componentSelector, tol)
该规则能够对模型进行优化以减少模型的节点和面数,其中componentSelector是优化的要素有四个可选值:vertices,edges,faces,all(包含点、线、面);tol 为容差值。
利用规则把模型导入到CityEngine中,导入模型的规则如下:
attr model="exportdae/tempdae.dae"
Lot-->
 i(model) //引入外部模型
该原始模型在3ds Max和CityEngine中的统计信息:

CityEngine2012实现模型的优化_第1张图片 

图为dae格式的模型导入到max里,模型效果与节点、面片数信息(758个面片、2182个节点)

CityEngine2012实现模型的优化_第2张图片 

dae格式模型导入到CityEngine里的效果与面片数信息(756个面)

然后利用cleanupGeometry对模型进行优化,其规则如下:
attr model="exportdae/tempdae.dae"
Lot-->
 i(model)
 cleanupGeometry(all,0.2) //模型优化操作,对所有要素进行优化其容差为0.2
经过优化之后的模型在CityEngine和3ds Max中的统计信息如下:

CityEngine2012实现模型的优化_第3张图片 

dae格式模型导入到CityEngine里进行优化之后的效果与面片数信息(300个面)

CityEngine2012实现模型的优化_第4张图片 

图为模型优化后在max里显示的相关信息(300个面片、806个节点)。

从上面的对比信息中可以看到通过cleanupGeometry规则有效地减少了节点和面的数量。
2 Cleanup Shape功能
在按照第一种方式导入模型的基础之上,还可以利用Cleanup Shape功能对模型进行优化。下面看一下如何利用Cleanup Shape功能进行优化.
2.1  把模型转换为形状(convert models to shapes)
首先选中要转换的模型,右键单击在弹出的列表中选择Convert Models to Shapes就可以把模型转换为形状。

CityEngine2012实现模型的优化_第5张图片 

此外,还可以通过菜单Shapes菜单调用Convert Models to Shapes。

CityEngine2012实现模型的优化_第6张图片


2.2  模型优化
选中转换为形状的数据,右击选择Cleanup Shapes弹出如下对话框:

CityEngine2012实现模型的优化_第7张图片 

调整Distance Tolerance(容差值)为0.2,其它默认点击Finish就完成模型的优化。

CityEngine2012实现模型的优化_第8张图片 

利用Cleanup Shapes对模型进行优化后,CityEngine的面片数为297。

CityEngine2012实现模型的优化_第9张图片 

优化后的模型导入到3ds Max中显示的信息,点832,面片297。


3 总结
通过上面的操作和对比可以发现这两种方式都能实现模型的优化,不同的是cleanupGeometry优化的对象是模型,优化之后CityEnegine默认的类型仍然是模型;Cleanup Shapes针对的是形状,优化之后CityEngine默认的类型还是形状。这两种方式处理的结果都可以通过导出方式得到我们所需要格式的模型。在具体的应用时可以根据实际需求选用其一。

你可能感兴趣的:(CityEngine2012实现模型的优化)