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 ...
随机推荐
- apache 配置https
1.生成密钥# openssl genrsa 1024 > server.key这是用128位rsa算法生成密钥,并保存到server.key文件 2.生成证书请求文件# openssl req ...
- Codeforces 719E [斐波那契区间操作][矩阵快速幂][线段树区间更新]
/* 题意:给定一个长度为n的序列a. 两种操作: 1.给定区间l r 加上某个数x. 2.查询区间l r sigma(fib(ai)) fib代表斐波那契数列. 思路: 1.矩阵操作,由矩阵快速幂求 ...
- Mysql备份迁移——MySqlBackup(.net)——(无法解决视图嵌视图报错)
这里是利用MySqlBackup,可以再nuget中下载. 无法解决视图嵌视图报错的问题,只导表跟数据比较合适,如果有视图嵌视图,请参照Mysql备份迁移——Mysqldump(.NET调用Mysql ...
- 解决sqoop需要输入密码的问题
修改配置文件:vi /etc/sqoop/conf/sqoop-site.xml <property> <name>sqoop.metastore.client.record. ...
- Blackfin DSP(八):BF533的DMA
#include <cdefBF533.h> #include <sys\exception.h> #define POLC 0x00004000 #define PORT_C ...
- 创建线程方式-pthread
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Js_Ajax_用户名检测
输入"root",OK:输入其它,Error ajax.jsp var xhr; function createXhr() { if (window.XMLHttpRequest) ...
- CSS3属性transition
CSS3 Transitions 指定过渡 语法: transition: property duration timing-function delay; 参数一: transition-p ...
- 安装和使用memcached
引用:http://www.czhphp.com/archives/252 如何将 memcached 融入到您的环境中? 在开始安装和使用 using memcached 之前,我们需要了解如何将 ...
- CmdBuild
cmdBuild官网地址:http://www.cmdbuild.org/it 下载.功能和安装说明:http://www.cmdbuild.org/en/download 扩展组件: shark-c ...