LOD技术主要是根据距离建筑物对象的距离来调用不同复杂度的模型,即在较远距离时显示复杂度低的模型,在较近距离时显示复杂度高的模型。在CityEngine中为了提高显示效率,也可以使用LOD机制。本节我们就给建筑物模型添加一个简单的LOD机制。当我们要创建大范围的建筑物模型时,可以由此降低模型的复杂度(多边形的数量)。

  1. 1.        添加LOD属性

attr LOD = 1

在本示例中,只设置两个显示级别:

LOD 0:代表较低级别,低复杂度

LOD 1:代表较高级别,高复杂度

因为模型制作中,我们做的模型已经是搞分辨率的模型,因此现在通过简单的步骤创建低分辨率模型。

  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个。

转载于:https://www.cnblogs.com/esrichina/archive/2012/08/27/2658505.html

CityEngine建模示例教程6:Basic Shape Grammar之Part 3:给建筑物制作LOD相关推荐

  1. 使用 SQL Server 2012 Analysis Services Tabular Mode 表格建模 图文教程

    原文 http://www.cnblogs.com/biwork/archive/2013/05/22/3093896.html BI Work 使用 SQL Server 2012 Analysis ...

  2. struts2登录注册示例_Struts 2控制标签示例教程

    struts2登录注册示例 We learned about Struts 2 Data tags in the last post, today we will look into the cont ...

  3. Android ActionBar示例教程

    Today we will look into Android ActionBar. Action Bar is one of the important part of any applicatio ...

  4. Spring Security示例教程

    Spring Security provides ways to perform authentication and authorization in a web application. We c ...

  5. jsf集成spring_JSF Spring Hibernate集成示例教程

    jsf集成spring Welcome to JSF Spring Hibernate Integration example tutorial. In our last tutorial, we s ...

  6. jaxb教程_JAXB示例教程

    jaxb教程 Welcome to JAXB Example Tutorial. Java Architecture for XML Binding (JAXB) provides API for c ...

  7. Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020

    Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020 流派:电子学习| MP4 |视频:h264,1280×720 |音频:aac,48000 ...

  8. JQuery图表插件Highcharts示例教程

    JQuery图表插件Highcharts示例教程,先上图,大伙Show一下效果:先上三个图,分别是曲线.柱状.扇形. 图表中的数据纯属于DEMO的测试数据,没有实际用意.下面讲下大致的实现步骤 第一步 ...

  9. jquery饼状图插件的指引线_JQuery图表插件Highcharts示例教程

    JQuery图表插件Highcharts示例教程,先上图,大伙Show一下效果:先上三个图,分别是曲线.柱状.扇形. 图表中的数据纯属于DEMO的测试数据,没有实际用意.下面讲下大致的实现步骤 第一步 ...

最新文章

  1. UC伯克利发现「没有免费午餐定理」加强版:每个神经网络,都是一个高维向量...
  2. 2018-2019年新一代AI领域十大最具成长性技术展望
  3. lodop打印不显示页码_CAD上明明有图,但是打印的时候不显示怎么办?原来要这样设置...
  4. 混合app用百分比还是rem_如何用平板APP和手机APP控制混合音视频矩阵切换器
  5. javascript 强制类型转换
  6. java与java ee_计划Java EE 7批处理作业
  7. 打docker镜像_从安全到镜像流水线,Docker 最佳实践与反模式一览
  8. 高流量站点NGINX与PHP-fpm配置优化
  9. oracle mysql分页语句怎么写,sqlserver ,mysql,oracle 语句实现分页
  10. 【hdu 6396】Swordsman
  11. windows下游戏服务器端框架Firefly安装说明及demo运行
  12. 关于Maven构建的项目依赖范围
  13. oracle8i odac for c,ODAC for delphi
  14. 计算机与科学技术会学机械,计算机科学与技术和机械设计制造及其自动化的区别...
  15. LED背光源和LED背光灯区别
  16. Pytorch基础知识之pth文件与DataLoader数据加载器
  17. SystemUi通知栏
  18. Java实现 四舍五入取整到百位 四舍五入取整到千位 数字取整到千位 数字取值到千位 数字取整到百位 数字取值到百位
  19. 微信小程序——瘦金社区
  20. 【Linux】动态链接库 cannot find -lxxx问题总结

热门文章

  1. 【Linux】shell脚本实战-if单双分支条件语句详解
  2. 零基础如何入门网络安全(黑客)
  3. python学习day30
  4. Modbus 整型转单精度浮点
  5. 基于RflySim平台的mahony(含磁罗盘)互补滤波在pixhawk仿真及实物实验(带实验数据)
  6. 黄良会:关于香港汽车社会发展史的那些事(上)
  7. [linux]循序渐进学运维-基础命令篇-文件的归档和压缩
  8. EXCEL对单元格中包含某些字符串,进行if条件判断,模糊查找
  9. 埃尔米特插值问题——用Python进行数值计算
  10. 选择结构习题:输入0~6的数字,输出对应星期的英文。