cityengine贴图的详细解释

3
分享 2015-03-19

贴图相关问题

1 问题描述

很多朋友经常问到CityEngine贴图的相关问题,诸如规则内每个参数的意义以及如何贴图的问题。

2 释疑

在CityEngine里模型完成贴图有以下两种途径:

1) 引入外部带有贴图的静态部件,通过这些部件进行模型构建时说就无需现赋予贴图了。

2) 在规则内部完成对模型的贴图,这里要分两种方式进行贴图,一种是面约束的贴图,适用于面方向不发生变化的情况如建筑的面;另外一种是走向约束的贴图,这个主要是针对道路、护栏等模型而言其走向随时会发生变化。

2.1 走向约束型的贴图

主要针对道路、护栏等对象而言。其规则可以参照下面的代码进行调整:
TextrueUV-->
normalizeUV(0, uv, collectiveAllFaces)
scaleUV(0,rint(lenAlongU/7),1)
texture("test/road_R.jpg")
projectUV(0)

该规则里引用的重要规则说明:

normalizeUV(uvSet, uvNormalizeMode, uvNormalizeType)

该规则用来约束uv走向面上的贴图,参数uvSet确定了贴图的类型,取值为[0,5]之间的整数;参数uv约定了贴图的方向,有两个取值u和v;最后一个参数一般情况下直接选择collectiveAllFaces就可以了。

scaleUV(uvSet,num_U,num_V) num_U指的是在U向贴图的重复次数,num_V指在V向贴图的重复次数。。

2.2 面约束型的贴图

主要指类似与建筑这样的面,这种类型的面具有确定的方向。具体可以参照如下代码:
TextrueUV-->
setupProjection(0,scope.xy.scope.sx,1)
texture("test/road_R.jpg")
projectUV(0)

重要规则说明:

setupProjection(uvSet,axesSelector, texWidth, texHeight)

其中uvSet和走向约束型贴图中提到的uvSet同一个意义。axesSelector约束所要贴图的平面的方向,texWidth确定的贴图所对应的实际宽度,texHeight确定了贴图所对应的实际高度(长度)。

0 个评论

要回复文章请先登录注册