CityEngine中动态水的实现
地址:http://pan.baidu.com/share/link?shareid=3871210059&uk=3492170216
密码:am5b 在今年Esri全球用户大会和Esri中国用户大会的主体大会上都能看到动态水在Web端的身影,如下面这幅图就是Esri中国用户大会上展示的高铁中的动态水效果:
像上面这幅动态水的效果只需要修改图层的名字或者一句简单的规则如下:
WaterWave2-->
set(material.name,"water__waterparams_30_50")
X.
然后将该规则赋给矢量的面片就可以得到上面的效果。那么这其中又有什么样的区别呢?其中的制作流程又是怎样的呢?下面将从动态水制作、场景导出和发布两个方面来做一下阐述。
动态水制作
通过修改图层(要素)名字制作动态水
下面的字符串能够在Web查看器中触发动态水效果的显示:
1. <something>__water<something>(默认水波参数,流速为:10,波浪高点与低点的差为:7)
2. <something>__waterquiet<something>(较慢的流速:5,较小的波浪:2)
3. <something>__waterstormy<something> (较快的流速:30,较大的波浪:15)
说明:此部分指当图层或形状(要素)的名字满足“*__water*”时,在导出成WebSecene时就会渲染为动态水的效果。其中图层的名字满足这种形式时,该图层下的所有对象都会被渲染成动态水的效果,当形状(要素)的名字满足这种形式时只有该形状会在web端渲染出动态水的效果。其中的连接符为英文状态下的双下划杠“__”。
通过规则制作动态水(流速/波浪可调整)
在默认流速的情况下操作相对比较简单,我们只需要更改图层或要素的名字就可以触发动态水的显示效果。如果需要自定义水流的速度、波浪的大小就需要编写规则。直接通过定义材质的名称就可以了,形式如下:
set(material.name,<something>__waterparams__<wavesize>__ <wavespeed>)
参数说明:
1. <something>__waterparams__<wavesize>__<wavespeed>是一段字符串;
2. <something>是任意字符,<wavesize>是数值型参数(浮点型和整形都可以)指波浪高点与低点的差,<wavespeed>是数值型指流速;
3. 中间的连接符为为英文状态下的双下划杠“__”。
示例代码如下:
WaterWave2-->
set(material.name,"water__waterparams_30_50")
X.
场景导出
1. 选择要导出的模型/形状;
2. 通过菜单File → Export Models...打开Choose format formodel export窗口,并在此窗口中选择CityEngine Web Scene并点击下一步如下图:
3. 在弹出的窗口中选择默认并下一步;
4. 在弹出窗口中点击finish即完成场景的导出。
导出完成后,在文件导航窗口刷新工程下的models文件夹就会看到新生成的场景文件。
场景预览和发布
在文件导航窗口右键选择并选择3D WebScene Viewer/(offline)就可以进行预览。
预览会发现并不会出现动态水的效果,这是因为CityEngine2012自带的Web Viewer里面并不支持动态水的效果(CityEngine 2013会支持),在这里给大家准备了最新的webviewer。只需要要把原文件夹中的工作空间下的“…/ce.lib/webviewer”文件夹及里面的内容删掉,把新webviewer文件夹拷到相应的目录即可实现在CityEngine中的预览。
如果需要把web scene部署到自己的IIS端,可以参考博文《CityEngine Web Scene如何在IIS下部署》,同样需要用新webviewer替换原有的webviewer。
另外在arcgis online有很多资源(http://www.arcgis.com/features/),可以帮助我了解国外的朋友是如何利用CityEngine建模、如何利用CityEngine解决实际问题的(如:波特兰市城市污染物分析等)。推荐online的几个组,里面有很多很好的web scene场景:
1.CityEngine UserGenerated Web Scenes :http://www.arcgis.com/home/group.html?owner=CityEngine&title=CityEngine%20User%20Generated%20Web%20Scenes
2.CityEngine WebScenes:http://www.arcgis.com/home/group.html?owner=CityEngine&title=CityEngine%20Web%20Scenes
3.3D GIS CityModel-featured Web Scenes:http://www.arcgis.com/home/group.html?owner=cybercity3dinc&title=3D%20GIS%20City%20Model-featured%20Web%20Scenes。
如果你有比较有创意/漂亮的作品想与国外的同行进行分享,只需要注册个online帐号就可以发布了。
此外如果想在组织内部对我们成果做共享,portal for ArcGIS也是一个不错的选择。想要了解相关内容请关注ArcGIS产品与技术专栏——云计算。
CityEngine中动态水的实现的更多相关文章
- 用drawRect以及CAReplicatorLayer绘制动态水波纹
用drawRect以及CAReplicatorLayer绘制动态水波纹 大大简化了写水波纹效果的难度,你可以根据示例自己组装水波纹效果,本设计是几个工具组合在一起完成的效果, DrawRectObje ...
- 第三章Struts2 Action中动态方法调用、通配符的使用
01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...
- Struts2中动态方法的调用
Struts2中动态方法调用就是为了解决一个action对应多个请求的处理,以免action太多. 主要有一下三种方法:指定method属性.感叹号方式和通配符方式.推荐使用第三种方式. 1.指定me ...
- UE4 中在 Actor 中动态 Create Component 与ChildActor 的 小笔记
Note:旧版本的UE4 的Attach 和12.13版本有些不一样 创建Component: UCpp_MyComponent* temp_imageCom = NewObject<UCpp_ ...
- Android中动态更新ListView(转)
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...
- 在后台代码中动态生成pivot项并设置EventTrigger和Action的绑定
最近在做今日头条WP的过程中,遇到需要动态生成Pivot项的问题.第一个版本是把几个频道写死在xaml里了,事件绑定也写在xaml里,每个频道绑定一个ObservableCollection<A ...
- Struts2 Action中动态方法调用、通配符的使用
一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Actio ...
- oracle过程中动态语句实现
oracle过程中动态语句实现 一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DD ...
- Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名
Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名 转载自:http://b ...
随机推荐
- MySQL中四舍五入的实现
MySQL四舍五入的实现 文章主要描述的是MySQL四舍五入的实际应用, 以及在其实际操作中的值得我们大家注意的事项与其实际应用代码的描述,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其 ...
- Linux下ejabberd安装配置
1.下载Ejabberd安装包 wget http://www.process-one.net/downloads/ejabberd/2.1.13/ejabberd-2.1.13-linux-x86_ ...
- click事件
click事件是可以多次绑定的,如果绑定多次就会执行多次,因此再不需要重复执行的情况下,就需要使用unbind对事件进行解绑
- link
public IEnumerable InsuranceSearch(InsuranceSC sc, out int TotalCount) { var data = from q in Insura ...
- Sass浅谈
对于一名前端开发来说,CSS并不陌生,几乎每天都在和CSS打交道.相处久了就会觉得CSS有些许的机械化,有些许的无趣:就会觉得写CSS很多时候都是在做一些复制粘贴性的工作,布局排版,颜色设置,边框属性 ...
- 纸上谈兵:伸展树(splay tree)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们讨论过,树的搜索效率与树的深度有关.二叉搜索树的深度可能为n,这种情况下,每次 ...
- mybatis关联查询,一对一,一对多
注:这篇文章的代码有部分删减,不能直接使用,不过关键代码都存在 应用场景: 想用mybatis做关联查询,并且把查询出的数据自动组装成对象可以使用关联查询. 1.一对一实现 例如:一部小说,属于一个 ...
- MFC的自定义消息的定义与使用
自定义消息的响应和资源消息的响应有很多类似之处:资源消息的响应是以资源的ID号作为标识的:自定义的消息要自己声明消息ID. 一. 定义: 第一步要声明消息: #define WM_ ...
- html-css实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 关于DCOM的安全性
关于DCOM的安全性 DCOM的安全性设置在注册表中. 2. 通过DCOMCNF.exe可以配置