10-CityEngine规则建模-规则及规则执行原理
- 格式:ppt
- 大小:4.32 MB
- 文档页数:24
CityEngine导出OBJ模型变形原因分析与解决方法作者:魏远航朱钱洪李晓俊来源:《电脑知识与技术》2020年第18期摘要:CityEngine在高效迅速生成大规模三维场景模型方面具有较大的技术优势,然而在建模完成后导出为obj模型常发生扭曲变形的情况。
本文从OBJ模型数据结构和存储的角度进行分析,探究其形成原因并提出了相应的解决方案。
关键词:CityEngine,obj,扭曲变形中图分类号:TP391 文献标识码:A文章编号:1009-3044(2020)18-00010-02开放科学(资源服务)标识码(OSID):1 引言CityEngine建模是一种基于规则的快速三维建模方法,能调用建筑物底面矢量数据中属性字段,进行程序批量快速建模,充分利用了已有的数据,同时提高了效率,为大场景三维建模提供了一种新的方法[1-3]。
CityEngine高效迅速生成大场景模型的秘诀是其采用了CGA语言(Computer Generated Architec-ture)作为设计语言,通过预定义各类规则并将其赋予对应的矢量面,迅速生成模型。
这种批量建模技术非常适合对模型本身精细度要求不高但场景很大的工作(如规划三维效果展示)。
OBJ文件是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导,作为一种文本文件格式,采用单纯的字典状结构,易于存储[4-5]。
然而在实际应用中,经常出现Citven-gine建模完成后导出为obj模型发生扭曲变形的情况,在其他三维平台(如3Dmax)无法正常显示。
这对于Cityengine建模的后续分析和应用造成了困难。
本文拟从OBJ模型数据结构和存储的角度进行分析,探究其形成原因并提出相应的解决方案。
2 OBJ模型数据结构OBJ模型文件是Alias公司开发的一种标准三维模型文件格式[6],主流的软件平台(如Maya、3D max)一般都支持OBJ格式。
OBJ模型以文本文件存储,构成模型的点、矢量、模型坐标是明码标记,非常利用用户对其进行查看和编辑。
1引言近年来,由于三维建模及VR技术能够实现对周围环境的极致逼近,会让使用者有一种身临其境的感觉,受到了广大群众的欢迎。
三维建模技术也随着市场的需求得到了快速发展。
三维建模技术是建立现实世界虚拟化三维场景的基础,它能够将对地理空间的表示从传统的二维表达方式转换为以三维立体的方式来展示,使之能够更加真实、形象地展示现实世界[1]。
目前,能够进行三维建模的相关技术和软件很多,如3DMax,SketchUp、Lumion等,这些软件的核心思想都是把现实研究对象拆分成若干的基本几何形体,然后对其进行基本模型的建立及组合处理,是一种静态的模型[2]。
本文介绍一种基于不同工作原理的建模工具:CityEngine,该建模软件主要是基于规则进行,通过对表示对象的拆解,组织其规则结构,然后编写规则文件,即可实现相应模型的创建,它的主要优势在于能够对规则文件的重复使用,并且通过对规则文件的简单修改,就可实现模型的更改,相对于3DMax等建模工具,它具备了动态、快速、批量建模的特点,为三维建模领域提供了一种新的思维与手段。
2CityEngine及CGA规则简介2.1CityEngine软件简介CityEngine是一款城市快速建模的软件,其主要思想是一种基于规则的“程序化”的建模手段,通过编写规则程序命令,即可实现相应的模型建立。
CityEngine广泛支持常见的三维模型数据格式,比如,OBJ,DAE,DXF,KML,3DS等,并且与ArcGIS等GIS平台无缝集成,具备地图投影功能,可以直接使用ArcGIS提供的二维GIS 数据,其成果也可以直接以MULTIPATCH的文件格式存储,可作为ArcGIS的直接数据源。
2.2CGA规则CGA(computer generated architecture)是一种基于语义的建模语言,它是整个CityEngine的核心部分[3]。
我们通过分析模型对象的组成结构,创建相应规则文件,就能够定义这种模型,并能够对多个对象赋予这些规则,从而实现模型的快速及批量创建。
信息科学科技创新导报 Science and Technology Innovation Herald157DOI:10.16660/ki.1674-098X.2018.10.157基于CityEngine三维场景多尺度模型构建①黄任远 肖扬 刘海军 于洋(吉林建筑大学测绘与勘查工程学院 吉林长春 130118)摘 要:针对在不同比例尺下三维场景的显示,本文采用CityEngine建模软件展开了多尺度建筑建模的研究,介绍了CityEngine CGA规则下建模方法,深入分析了多尺度下建模规则,并进行了不同建模方法的对比实验,为后续开展建筑建模提供了一套可行、有力的建模思想以及实现途径。
关键词:CityEngine CGA 多尺度 规则 建模中图分类号:TP75 文献标识码:A 文章编号:1674-098X(2018)04(a)-0157-02近年来随着地理信息技术和计算机图像处理技术的飞速发展,三维建模手段层出不穷,空间信息的三维可视化显示逐成为热点问题之一。
由ESRI公司推出同样有出色建模功能的CityEngine具备通过编写规则代码的方式批量化生成模型的功能,并快速调用GIS中的属性数据[1],因此CityEngine的应用逐步成为三维建模的首选[2]。
本文利用CityEngine平台实现在不同比例尺下的规则化建模,为对规模较大,特征明显的地物、地貌的创建和显示提供了新的方法。
1 多尺度建模规则实现基于CGA语义建模迭代精炼设计的特性,开始创建细节表达相对较少适用于小比例尺三维场景的模型规则。
此规则的优势在于以很小的屏幕承载量以及占用很少RAM (random access memory随机存储器)的情形下,准确并以三维的方式逼真地表达出现实场景。
1.1 开始创建用于小比例尺三维场景的模型规则(1)导入建模所需要的二维GIS数据,将目标建筑分为四个部分:Height、Floor_Height、WallSide、WinSize。
CityEngine三维建模与设计精英培训班(扩展学习参考手册)Esri中国信息技术有限公司2014年5月版权声明本文档版权为Esri中国信息技术有限公司所有。
未经本公司书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或全部,并以任何形式传播。
制定及修订记录版本完成日期编写/修订纪要编写者备注V1.0 2014-5-24 编写徐汝坤甘鑫平CityEngine2012版本目录第1章城市建模实战练习 (5)1.1需求分析 (5)1.2目的和意义 (5)1.3数据准备与处理 (5)1.3.1基础数据的准备与处理 (5)1.3.2贴图数据的准备 (8)1.3.3模型部件的准备 (10)1.4场景构建和数据导入 (10)1.5规则编写 (12)1.5.1绿化区散点树的创建 (12)1.5.2标志性建筑物的引入 (14)1.5.3一般建筑的创建 (14)1.5.4道路数据的创建 (19)1.5.5其它规则 (23)1.6规则使用和模型调整 (23)1.7模型导出与场景展示 (23)第2章CityEngine函数库 (25)2.1几何体创建 (25)2.1.1替换函数(i) (25)2.1.2屋顶函数 (26)2.1.3其它几何体创建函数 (29)2.1.4练习:屋顶创建 (30)2.2几何体变换 (31)2.2.1平移函数 (31)2.2.2旋转函数(r) (33)2.2.3缩放函数(s) (34)2.2.4居中函数(center) (35)2.3几何体细分 (36)2.3.1拆分函数(comp) (36)2.3.2切割函数(split) (37)2.3.3后退函数(setback) (39)2.3.4偏移函数(offset) (40)2.3.5随机点函数(scatter) (41)2.3.6其它几何体拆分函数 (42)2.4模型贴图 (42)2.4.1贴图函数(texture) (42)2.4.2约束贴图的函数 (43)2.4.3操作UV函数 (46)2.5函数库综合练习 (47)2.5.1练习:建筑物模型规则编写 (47)2.5.2练习:道路规则编写 (50)第3章CityEngine交互建模 (53)3.1纹理校正工具 (53)3.1.1纹理校正工具介绍 (53)3.1.2练习:利用纹理校正处理变形图片 (54)3.2交互式建模工具 (54)3.2.1交互式建模工具介绍 (54)3.2.2练习:利用交互式建模工具建模 (55)3.3FacadeWizard立面处理工具 (61)3.3.1Façade Wizard工具介绍 (61)3.3.2练习:利用Façade Wizard创建规则 (62)第4章CityEngine使用Python脚本 (68)4.1Python脚本界面基础 (68)4.1.1Python控制台 (68)4.1.2练习:利用python控制台选择道路的节点 (68)4.1.3Python编辑器 (69)4.1.4练习:利用python编辑器选择道路的节点 (71)4.2练习:利用python脚本批量导出 (71)附录 (73)A.学习资源 (73)第1章城市建模实战练习利用CityEngine创建城市三维模型时要考虑创建那些城市内容,这些内容要创建到什么程度?基于这些信息进而去组织数据、编写规则,最终完成城市三维模型的创建。
基于CityEngine的三维数字校园系统朱安峰;王海鹰;高金顶【摘要】Taking JinMing campus of Henan University as a study area, a three dimensional digital campus is designed and implemented by using ESRI CityEngine platform and technology. The users can visit the virtual campus online, query the information of the campus landscape object, and make sunlight analysis, set geographic information tag. The system provides effective means and tool for campus information management, business process and planning design.%基于 ESRI CityEngine 平台和技术,设计并实现了河南大学金明校区三维数字校园系统。
用户可以在线浏览三维虚拟校园,并实现对校园景观实体的信息查询、日光分析以及地理信息标签等功能。
系统为校园信息管理、业务处理、规划设计等提供了有效的手段和工具。
【期刊名称】《计算机系统应用》【年(卷),期】2015(000)002【总页数】4页(P112-115)【关键词】CityEngine;三维数字校园;河南大学【作者】朱安峰;王海鹰;高金顶【作者单位】武汉大学测绘遥感信息工程国家重点实验室,武汉 430079;河南大学环境与规划学院,开封 475004;中山大学地理科学与规划学院,广州 510275【正文语种】中文近年来, 随着“数字地球”、“数字中国”以及“数字城市”等概念的提出、研究和逐步实现, “数字校园”的方法研究和系统实现也越来越成为各大高校的研究热点之一. 目前国内众多高校信息管理系统主要针对非空间信息(如教务管理系统), 很少会涉及空间信息管理. 部分学者或高校尝试从二维地图角度来管理校园, 但是在可视化效果方面也会存在一定的不足. 此外, 单机版的三维数字校园虽然在可视化效果上有了很大突破, 但是在数据共享方面也会受到一定的限制.将三维可视化技术、虚拟现实技术不断深入运用到校园领域的在线三维数字校园宣传展示、校园动态规划建设等方面, 为我国教育事业提供了崭新的教育思维方式和技术手段. 国内许多学者探索了三维数字校园Web3D系统, 胡良柏等提出用3DMax建模来构建虚拟校园思路[1]; 龚建华等实现了香港中文大学崇基学院的三维模拟[2]; 吴森等用skyline构建了西南科技大学校园三维场景[3]; 杨武年等用CyberCity构建了成都理工大学虚拟校园[4]; 冯桂珍等基于Java3D等语言进行虚拟校园研究[5]; 张典华等基于Unity3D实现了多平台虚拟校园[6]. 在虚拟现实技术与教育方面相结合的应用方面, 国外也构建了不同类型的虚拟校园, 如采用Sketchup和3D Max构建的加拿大约克大学的校园三维模型[7]和土耳其的卡拉布克大学所构建的基于WEB的3D 校园信息系统[8]. 然而, 基于CityEngine的三维数字校园的研究却鲜有报道.本研究基于ESRI CityEngine平台, 构建了河南大学金明校区三维数字校园系统, 为在线校园的浏览显示、管理服务以及动态规划等提供了良好的解决方案. 作为校园数字化管理平台的一个重要组成部分, 三维数字校园为我国高校管理提供了一种新的的管理方式和技术手段.2.1 系统架构设计本文所研究的三维数字校园系统采用B\S架构, 共分为三个层次. 底层为数据层, 包括空间数据(如二维底图、三维模型等)及其对应的属性数据, 业务数据(如教务管理信息等); 中间层即应用层, 包括GIS服务器(CityEngine服务器, 简称CE服务器)及Web服务器的服务; 客户端即表现层, 提供三维服务的在线显示等. 系统架构图如图1所示.2.2 系统设计流程三维GIS系统的构建分为场景建模和场景服务两个部分. 场景建模是将要模拟的对象和场景表达成存储在计算机内的三维图形对象的集合, 包括二维底图和模型构建. 场景服务则是对所建立的三维场景进行具体的开发与运用, 包括基于三维可视化的浏览、显示、漫游及对三维空间的查询分析等交互的实现. 系统设计流程如图2所示.2.2.1场景建模场景建模是基于CityEngine软件进行的, 该软件支持ArcGIS产生的二维矢量底图, 支持真三维景观的重建. 将shp矢量数据导入CityEngine创建模型要素, 再对其进行细节优化、拉伸贴图等处理, 以使其最大逼近现实场景.2.2.2场景服务本文研究选用的软件CityEngine, 具有发布Web场景的功能, 发布的三维场景可以通过本地的Web Scene Viewer打开, 也可以发布到ArcGIS Online云端进行共享.将CityEngine中的场景通过以下制作方法: 选中模型->File->Export->Export Models->CityEngine Web Scene, 制作3ws场景包, 通过3D Web Scene Viewer(offline)或3D Web Scene Viewer发布场景. 本文采用的是通过3D Web Scene Viewer(offline)发布服务并在本地调取服务.2.3 系统功能设计整个系统共分为5个功能模块, 即三维浏览、空间查询、属性查询、日光调节、地图便签等模块. 图3为系功能架构图.(1)三维浏览利用WebGL技术实现无刷新三维地图的拖动、放人、缩小和旋转等基本功能, 使用户对浏览器端的行政楼、教学楼、宿舍楼、餐厅以及道路绿化等产生身临其境的感觉. 不仅可以浏览查询各个目标地物的属性信息, 更有良好的空间信息可视化效果.(2)空间查询该模块用于快速查询教学楼、行政楼、学生宿舍、餐厅、文体娱乐场所、商店和银行等. 查询目标地物在鼠标点击定位后高亮显示在三维场景中, 同时该目标地物对应的属性信息会显示在相应的右侧状态报告栏中, 实现了空间定位查询.(3)属性查询该模块用于模糊搜索各建筑物或设施等的属性字段, 同时自动匹配, 并将查询的属性信息结果在信息面板中显示. 点击该信息便可实现相应建筑物或设施在三维场景中的高亮显示, 到达了精确查找定位的效果.(4)日光调节通过该功能模块可以实现对三维场景显示日光情况对三维可视化的影响, 分为不同时间点的日光影响, 使用户可以在线感受不同时节的校园风光.(5)地图便笺该模块是用户在三维虚拟校园中自发式地在某确定地理位置添加相应的建议、投诉等评注, 并能发布在三维场景中, 实现与他人共享, 并能为校园建设与管理提供实时有效帮助.3.1 空间数据库本文研究区域为河南大学金明校区, 数据源为Google Earth提供的高分辨率遥感影像数据, 在ArcMap中经过矢量化得到二维矢量底图, 属性数据存储在相应的属性表中.3.2 三维模型库三维建模基于CityEngine平台, 主要采用规则建模. 建模思想是: 图形(geometry)+属性(attributes)+规则(rules). 规则即CGA 文件, 采用的语言是CGA Shape Grammar. 根据现有的二维数据, 如ArcGIS 产生的二维地图数据(shp格式), 导入CityEngine创建概要模型, 再对初步模型进行细节优化、拉伸及贴图等处理, 以接近真实场景. 以河南大学学生公寓的规则文件 dormitory. cga 为例, 部分代码如下:extrude(height) //拉伸长方形comp(f) { side : Facade | top(0): Roof } //分割立方体为组件Facade --> //定义外观setupProjection(0, scope.xy, ~2, ~2)//设置贴图矩阵split(y) { 5 : Door | ~1: UpperFloors }//分割外观color(50,50,0)Roof--> //定义屋顶setupProjection(0, scope.xy, '1, '1)projectUV(0) //设置纹理坐标系color(1,1,1) //设置纹理颜色引用该规则文件, 直接将 CGA 文件拖到相应的矢量面状要素上, 即可显示该模型, 图4显示了河南大学学生公寓模型.本文的三维场景经过CityEngine建模工具构建, 导出为.3WS 格式, 并通过3D Web Scene Viewer(offline)发布场景, 可以实现基于本地使用该场景.4.1 三维场景制作与发布Esri CityEngine提升了ArcGIS三维建模能力, 充分使用GIS数据快速创建3D 内容, 使得ArcGIS三维解决方案更加完善. 其中建模最大特色是基于规则批量建模编辑, 规则定义了一系列的几何和纹理特征决定了模型如何生成, 经反复优化设计, 以创造更多的细节. 将制作完成的三维模型选中导出为.3ws格式, 并能使用3D Web Scene Viewer(offline)发布三维场景.4.2 三维校园浏览功能通过该系统, 用户能够浏览校园的全局或者局部景观, 尤其是三维校园景观, 给用户如同漫步于真实的校园环境中, 系统通过导航条、鼠标左右键可以实现对三维景观的放大、缩小、全图、漫游、平移、旋转等基本操作. 系统总体界面友好, 图像浏览通畅, 无明显破碎现象. 同时, 系统通过Layers工具控制图层显示与否.4.3 三维校园查询功能本系统实现空间信息与属性信息双向查询, 提供了丰富的查询功能. 用户可以根据自己感兴趣地物, 如土木建筑学院, 鼠标点击该建筑物, 可以查询显示到该公寓的基本信息, 如name、楼高、楼层等信息. 如图5实现了用户点击建筑物查询信息; 同时, 用户可以在search功能按钮中输入需要查询地物进行信息查询, 此时查询到的兴趣地物高亮显示, 并可以精确定位到目标地物. 如图6实现了用户输入关键字查询土木建组学院.4.4 三维校园日光调节功能通过对网页右侧面板中Setting工具Sunlight的调节, 可以实现不同时间点的日光影响下的校园三维场景.4.5 三维校园地图便签功能将该三维场景发布到ArcGIS Online上, 通过Bookmarks功能可以实现对定点地物进行注记标示, 便于用户在精确位置标明自己的评论与建议, 增强用户体验并能提高管理员的决策管理服务.本文采用ESRI主流三维建模软件CityEngine, 以及ArcGIS平台, 建立了河南大学金明校区Web3D GIS数字校园系统. CityEngine在构建三维景观模型方面具有简单、快速而又美观的特点, 实现了地图浏览、查询等基本功能, 同时实现了自发式地理信息功能, 具有良好的交互功能. 从总体来看, 该系统具有良好的显示效果和用户体验, 但系统也存在一些不足, 在复杂的三维模型方面, CityEngine的规则建模具有较繁杂的逻辑层次, 借助于第三方建模软件或是CityEngine在规则建模方面的优化将会解决这类问题. 此外, 该系统的三维场景只能在支持WebGL功能的浏览器(如谷歌浏览器Chrome和火狐浏览器 Firefox等)中运行, 随着支持 WebGL技术浏览器的普及, 以及Web3D技术和CityEngine二次开发架构的实现, 三维数字校园将会得到更好的发展.1 胡良柏,王志红,韩立钦,兰小机.网络三维虚拟校园建设及应用.测绘科学,2013,38(1):168–170.2 龚建华,林珲,谭倩.虚拟香港中文大学校园的设计与初步试验.测绘学报,2002,31(1):39–43.3 吴森,锋强,李虎杰,吴彩燕.基于skyline的三维数字校园的建设.西南科技大学学报,2012,27(1):73–76.4 杨武年,濮国梁,余代俊,简季,曾涛,江利明,王艳.数字成都理工大学校园空间信息系统的构建与实现.成都理工大学学报(自然科学版),2005,32(1):101–106.5 冯桂珍,池建斌,王大鸣,王晨.采用Java3D 构建虚拟校园技术的研究.工程图学学报,2009(6):186–190.6 张典华,陈一民.基于Unity3D的多平台虚拟校园设计与实现.计算机技术与发展,2014(2):127–129.7 Armenakis C, Sohn G. iCAMPUS: 3D modeling of YORK University Campus. Toronto, Canada. 2009. 2–3.8 Kahraman I, Karas IR. Developing web-based 3D campus information system. ISG&ISPRS 2011.3–5.。
规则引擎原理
规则引擎原理主要是基于一套规则集合,用于规范和自动化决策过程。
在规则引擎中,每个规则由条件和动作组成。
当满足规则中的条件时,对应的动作会被执行。
首先,规则引擎会接收外部的事件或数据。
这些事件或数据将会被传递给规则引擎的运行时环境。
其次,规则引擎会将接收到的事件或数据与事先定义好的规则集进行匹配。
规则集中的规则通常设计为如果满足某些条件,则执行相应的动作。
在进行匹配过程中,规则引擎会按照一定的优先级顺序逐条检查规则。
如果某个规则的条件部分与事件或数据相匹配,则对应的动作将会被触发执行。
这个过程可以是完全自动化的,从而实现了规则的自动化处理和决策。
规则引擎的核心思想是将业务逻辑从编程代码中抽离出来,以规则的形式进行描述和管理。
通过使用规则引擎,可以实现业务逻辑的灵活性和可维护性。
当业务规则需要变更时,只需修改规则集,而无需修改代码,从而降低了系统的维护成本。
总结来说,规则引擎的原理是基于一套规则集,通过匹配输入事件或数据来触发相应的动作,从而实现自动化的规则处理和决策。
它的优势在于提供了一种灵活且易于维护的方式来管理和应用复杂的业务规则。
电子技术与软件工程Electronic Technology & Software Engineering数据库技术Database Technology基于CityEngine的重庆嘉陵江地区三维建模王思睿1马晨阳2江涛1(1.山东科技大学测绘科学与工程学院山东省青岛市266590 )(2.中国科学院空天信息创新研究院定量遥感重点实验室北京市100094 )摘要:本文以重庆嘉陵江地区为例,利用CityEngine平台和C G A规则进行批量精细化三维建模,提出了解决模型缺失的递归方法 和进行动态建模的朝向思想。
并且在模型细节上做出优化,如双层水面等,使模型具有更好的可视化效果。
基于CityEngine三维建糢有 效结合了静态模型的独特性与批量模型的参数可调性,提高了建糢的效率与场景适应性,同时具有良好的视觉体验和较高的开发价值。
关键词:CityEngine(城市引擎);C G A规则;批量精细化三维建糢;递归方法1引言随着计算机图形学、3S(Remote Sensing,R S;Geographic Information System,GIS;Global Navigation S a t e l l i t e System,G N S S)技术、虚拟现实技术以及多媒体技术的发展,三维全景漫游己经逐 步兴起并被应用于城市规划、旅游、教育、军事、娱乐等领域。
现 阶段,如 Autodesk公司的 A u t o C A D、3ds M a x、Maya 以及 Google 公司的SketchUp等主流三维软件的功能己经十分强大,具有较好 的建模效果m。
在三维城市建模研究中,常用的建模有无人机采集 数据建立三维城市模型[2'数据量大,投入人力物力较多;激光[41技术建立三维输电线路杆塔模型,但点云数据成本高、数据量大、处理过程较繁琐;近年来,基于CityEngine^21的建模方法己经在 地理场景中得到广泛地应用。