CityEngine建模示例教程6:Basic Shape Grammar之Part 3:给建筑物制作LOD
2012-08-27 14:19
274 查看
LOD技术主要是根据距离建筑物对象的距离来调用不同复杂度的模型,即在较远距离时显示复杂度低的模型,在较近距离时显示复杂度高的模型。在CityEngine中为了提高显示效率,也可以使用LOD机制。本节我们就给建筑物模型添加一个简单的LOD机制。当我们要创建大范围的建筑物模型时,可以由此降低模型的复杂度(多边形的数量)。
1. 添加LOD属性
attr LOD = 1
在本示例中,只设置两个显示级别:
LOD 0:代表较低级别,低复杂度
LOD 1:代表较高级别,高复杂度
因为模型制作中,我们做的模型已经是搞分辨率的模型,因此现在通过简单的步骤创建低分辨率模型。
2. 为模型设置LOD
在目前的模型中,对于window类型的模型,之前是使用obj文件创建的一个较复杂的窗户,可以通过使用纹理平面代替obj这种复杂模型。需要添加红色部分的代码:
Window -->
case LOD > 0 :
s('1,'1,0.4)
t(0,0,-0.25)
texture(randomWindowTexture)
i(window_asset)
else :
texture(randomWindowTexture)
当LOD大于0时,使用的是之前创建的高分辨率的窗户模型,否则,使用的是一个简单的平面。同样的,对Door和SolidWall对象也添加类似的代码。
Door -->
case LOD > 0 :
s('1,'1,0.1)
t(0,0,-0.5)
texture(frontdoor_tex)
else :
texture(frontdoor_tex)
SolidWall -->
case LOD > 0 :
color(wallColor)
s('1,'1,0.4)
t(0,0,-0.4)
texture(wall_tex)
set(material.dirtmap, dirt_tex)
i("builtin:cube:notex")
projectUV(0) projectUV(2)
else :
Wall
应用这个规则之后,选择一个建筑物并查看其属性,会发现多了一个LOD属性。将LOD属性值改为0,属性表中的Source字段就从Rules改为Value。当再次应用规则时,将使用0值作为LOD的值应用在建筑物模型上。
当LOD为0时,模型显示如下:
当LOD为1时,模型显示如下:
显示模型时,按数字7键显示/隐藏模型上的黑线,按数字5键显示/隐藏纹理图片,按字母D键显示模型包含的面数。使用LOD之后,模型的面数从3699个面降低到了475个。
1. 添加LOD属性
attr LOD = 1
在本示例中,只设置两个显示级别:
LOD 0:代表较低级别,低复杂度
LOD 1:代表较高级别,高复杂度
因为模型制作中,我们做的模型已经是搞分辨率的模型,因此现在通过简单的步骤创建低分辨率模型。
2. 为模型设置LOD
在目前的模型中,对于window类型的模型,之前是使用obj文件创建的一个较复杂的窗户,可以通过使用纹理平面代替obj这种复杂模型。需要添加红色部分的代码:
Window -->
case LOD > 0 :
s('1,'1,0.4)
t(0,0,-0.25)
texture(randomWindowTexture)
i(window_asset)
else :
texture(randomWindowTexture)
当LOD大于0时,使用的是之前创建的高分辨率的窗户模型,否则,使用的是一个简单的平面。同样的,对Door和SolidWall对象也添加类似的代码。
Door -->
case LOD > 0 :
s('1,'1,0.1)
t(0,0,-0.5)
texture(frontdoor_tex)
else :
texture(frontdoor_tex)
SolidWall -->
case LOD > 0 :
color(wallColor)
s('1,'1,0.4)
t(0,0,-0.4)
texture(wall_tex)
set(material.dirtmap, dirt_tex)
i("builtin:cube:notex")
projectUV(0) projectUV(2)
else :
Wall
应用这个规则之后,选择一个建筑物并查看其属性,会发现多了一个LOD属性。将LOD属性值改为0,属性表中的Source字段就从Rules改为Value。当再次应用规则时,将使用0值作为LOD的值应用在建筑物模型上。
当LOD为0时,模型显示如下:
当LOD为1时,模型显示如下:
显示模型时,按数字7键显示/隐藏模型上的黑线,按数字5键显示/隐藏纹理图片,按字母D键显示模型包含的面数。使用LOD之后,模型的面数从3699个面降低到了475个。
相关文章推荐
- CityEngine建模示例教程6:Basic Shape Grammar之Part 1:简单建筑物
- CityEngine建模示例教程6:Basic Shape Grammar之Part 2:简单建筑物贴纹理
- CityEngine建模示例教程6:Basic Shape Grammar之@符号说明
- Vml:美洲豹系列教程之八(ShapeType给VML制作模版)
- iOS开发之静态库.a的制作教程
- MVC4制作网站教程第三章 添加用户组操作3.2
- 雨林木风最新万能GHOST系统制作教程
- WordPress主题制作教程10:添加文章类型插件Custom Post Type UI
- Android开发教程之shape和selector的结合使用
- Android 点九图-简单介绍及制作教程
- 时间条控件制作简明教程
- 40款非常棒的 jQuery 插件和制作教程(系列一)
- jQuery插件制作的实例教程
- 用Far制作chm的简易教程
- windows8 开发教程 教你制作 多点触控Helper可将任意容器内任意对象进行多点缩放
- Axure 教程 - 用中继器制作商品列表
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十五)制作精美的可任意拖放对象的物品栏及装备栏
- 网页制作教程:td也可以溢出隐藏显示【转】
- 【技法操作】PS制作日历图标,UI设计教程
- U大师U盘启动盘制作教程 详细图解步骤教你怎么装系统(老机版)