针对当前CityEngine群里大家比较关心的几个问题,统一列出来希望对大家有帮助。
1. 拖放规则后提示没有初始规则,其错误如下:
报错的原因:规则中有错误。
检查的方法:打开规则编辑器查看规则中有红叉 标识的部分。
错误的一般形式:
1) 中文符号引起的错误,下例是由于函数中存在中文标点符号引起的。
说明:在CityEngine的规则编写中与其它程序语言一样中文的字符、标点符号只能出现英文双引号内,或者出现在注释里,否则就会报错。
2) 引用函数的参数值不是参数的可选值。如下例:
scope.x并不是setupProjection函数的axesSelection参数的可选值所以会报错。
说明:当引用函数的参数值个数不对时,规则会认为是一个新的模型标识并不会报错。
3) 条件语句/随机语句缺少else。如下:
4) 随机语句除else以外的百分数的和超过100%。如下:
5) 引入未定义属性。如下:
CityEngine引入的属性必须是提前定义(attr、const或无前缀定义)。
当发现有错误提示时,针对其错误的类型选定解决方案。
2. 在构建场景或加载矢量数据时提示距离过远,其所报错误如下:
CityEngine是基于空间参考进行建模的(采用投影坐标),其涉及到场景坐标、地形影像坐标和矢量数据坐标。当三者采用的投影坐标系或者其位置偏差较远时都会报此错误。一般我们遇到错误主要是以下几种情况造成的:
1) 影像缺少位置信息。以tiff格式的影像地形为例,缺少影像坐标信息的文本文件(tfw文件)。CityEngine通过读取坐标信息文本文件记录的位置信息对其正确定位。tfw文件中各信息代表的意义如下:
当没有这些信息时,CityEngine在读取影像数据时,影像的范围即XZ的大小分别对应影像的行列数,X-offset值为0,Z-offset的值为负的Z-Size。
2) 矢量数据与场景数据的投影坐标系不一致。
为避免出现此类问题,在进入场景做一下准备工作:
1) 数据加载到ArcMap里检查所有的数据位置是否一致;
2) 检查数据的空间参考信息(必须是投影坐标),国内的数据坐标值一般X是6位,Y值 是七位;(注:参考信息可以是UnKnowen,这种情况下创建场景时就不要选择坐标系)
3) 检查影像地形数据是否带坐标信息文件。
当满足上述条件时,在创建场景时选择相应的投影坐标系,就会避免距离过远的错误提示。
3. 静态模型导入时距离过远,其提示错误信息如下:
如果直接文件导航窗口中拖动的话说明模型自身带有坐标值,即模型中心坐标不是(0,0)。这种情况下就无法把模型放到你拖动的位置,如果中心坐标过大时就提示该错误。
如果要导入带有投影坐标的静态模型(obj格式的)可以选择File->Import…OBJ Import进行导入,这样就能保证模型能正确导入。
说明:如果利用规则或直接通过文件导航窗口拖放到场景还要注意以下事项:
1)模型的中心坐标应为(0,0,0);
2)建筑模型方向应与建筑底面方向一致;
3)部件模型如路灯等应保持灯头的方向一致以方便规则的编写。
4.3Dmax导出的obj模型,导入CityEngine没有纹理
解决办法:
1)从3Dmax导出模型为dae,再导入CityEngine