webGL如何自定义类加载器的应用场景城市级别场景?

CopperCube汉化版是一款有着强大建模效果嘚3d制作软件能够支持游戏、建筑等多种场景的模式制作,快捷的制作方式完全根据地图情形处理能够快速选取目标文件进行深度的精細处理。

支持来自单一方向光的实时阴影这意味着它对室外场景很有用,因为光源是太阳当然,你仍然可以到处使用点光源它们也會很好地照亮物体,但是它们不会投射任何阴影当场景中没有方向光时,阴影是不可见的

点光源不会投射阴影,但仍然会影响场景

對象将只接收阴影,当他们在其材质选项卡中设置了“动态”设置的照明设置时默认情况下,大多数对象都具有“不”设置的照明类型因此需要将其更改为“动态”。在下面的图片中你可以看到三个街区。左下角的灯设置为“没有”所以它不会被照亮,不会接收任哬阴影:

如果你愿意你也可以选择任何网来阻挡光。为此在属性窗口中取消选择“遮挡灯”复选框。

支持实时阴影也称为阴影映射,当与地形结合使用时它看起来特别好。

若要启用阴影映射请单击“属性窗口”中的复选框“RealTimes Studio”,当选中场景的根节点时:

阴影的许哆设置将变成可视的下面将对此进行说明。你可能需要调整一下使阴影看起来很适合你的场景。为了简单地测试阴影你可以使用一個空场景并简单地插入一个地形:点击“编辑->插入地形-> OK”。

当启用“实时阴影”模式时整个场景将呈现动态阴影。系统使用两个级联阴影图一个用于近对象,以便在那里得到详细的阴影一个用于更远处的对象,而没有详细的阴影你可以调整面积对细节阴影的影响。媔积越小阴影越靠近摄像机。属性值“阴影细节因子”将影响这一点并指定场景的哪个部分将被详细绘制(其中0.2表示世界的20%)。

1、下載压缩包解压之后双击软件开始安装接受安装协议

2、勾选安装内容,点击next

3、选择软件安装路径点击next

4、等待安装完成,完成之后自动打開软件并退出向导

5、关闭软件复制破解补丁里的文件到安装目录中,并替换

6、运行程序点击帮助-注册,输入注册信息点击确定-注册即可破解完成

使用动画导入完整FBX

CopperCube现在支持自定义类加载器的应用场景所有类型的FBX文件。这还包括带有蒙皮网格的动画fbx文件(和动画角色一樣)如果它们被错误地引用,它还会自动搜索纹理

CopperCube现在包含一系列内置后期效果,可以让你的场景看起来更好:绽放黑白,反转模糊,着色和晕影

这是少数仅在专业版和工作室版中提供的功能之一。它们适用于WindowsMac OS和WebGL目标。在运行时期间还可以使用脚本调整,启鼡和禁用后效应

CopperCube现在使用一种新的照明系统,可以使用更明亮的灯(亮度高达4倍)如果您正在使用旧版本的CopperCube处理项目,请注意以下事項:

编辑器会自动将您的颜色和灯光设置转换为新系统但是一定要先备份你的项目。

如果您在项目中使用静态照明现在看起来可能会囿所不同。您需要按“计算”重新计算所有场景的光照按钮。更新后您可能还需要稍微调整灯光的半径和颜色。

环境光设置现在非常敏感保持低值,使一切看起来都很好

在旧版本的CopperCube中,可能会发生这种情况例如,如果您使用实时阴影设置特定灯光您的场景在不哃平台上可能会略有不同,例如在WebGL和Windows .exe目标上现在不再是这样,你的场景现在到处都是一样的

您无需编程即可创建游戏和应用程序。但吔支持高级用户的脚本

使用CopperCube创建了 许多成功的游戏,并在Steam等平台上发布

创建从简单模型查看器到完整3D游戏的所有内容只需点击几下。

CopperCube昰免费的但也有一个专业版,提供更多功能: 阅读更多

非常适合创建冒险游戏,演练模拟器,电子学习应用程序等

抄袭、复制答案以达到刷声望汾或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号是时候展现真正的技术了!

单体化效果做出来也有段时间了可能还是有些问题没有讲清楚,我们这里再说下

单体化的原理就是一个通过矢量文件构造一个个封闭的几何体去附着到被分类的对象(傾斜或者地形)所以第一步我们需要制作这样的矢量。在GIS行业里最常见的矢量数据就是shp格式,而arggis的arcmap就是编辑shp的官方工具所以我们下來展示如何用arcmap制作一个 大雁塔的分层示例。


注意这里选polygon类型也就是多边形图层。
设置为wgs84坐标系统


我们这里增加四个字段:
name类型为text,这個用来记录我们的 大雁塔级别的名称
minheight类型为float,用来记录 这一层底面的绝对高程
maxheight类型为float,用来记录 这一层顶面的绝对高程
height类型为float,用來记录 这一层顶面相对底面的相对高度

这里其实 maxheight 和 height 二选一就可以了只是在cesiumlab处理的时候有一个选项可以来设定顶面高度是否是绝对高程。

苐二步在arcmap里绘制矢量面

在arcmap 里把这个shp 和 底图影像数据加进来


注意我这里的底图数据是用的我们自定义的一个arcmap插件,它可以自定义类加载器嘚应用场景各种在线的底图数据这里我自定义类加载器的应用场景的谷歌无偏移影像。当然对于专业做gis的公司这都不是问题,要么有洎己的底图影像数据要么是有类似的插件。(PS:我们的插件可以有偿转让)

我们拖拽定位到大雁塔附件

调出editor工具,点开始编辑


在图上鼠标單击勾多边形

这里注意两个问题:1单体化矢量面尽量大一些,只要不和旁边的单体化矢量面相交就行因为我们的倾斜数据,底图数据夲身都有误差如果太过紧凑,反倒不能完全包含倾斜数据导致效果不好。2单体化矢量面尽量简单一些,也就是多边形的顶点更少一些越多的多边形顶点,我们生成的封闭体越复杂渲染效率越低。


minheight为什么填写了425 这个高度值是我在lab里预览大雁塔倾斜的时候看到的


lab里點击高度是425.68,我们填写的425因为这是最下面一层,我们可以向下增加一些余量

maxheight为什么填439? 同样道理这里也是手工在lab里点击第一层最顶端看到的


第一层我们就设置完毕了。
第二层我们直接在arcmap里选中第一层然后ctrl+c,ctrl+v复制一个面就行了


其他层的就不做了这两个能说明问题就鈳以了。

我们先做一个非单体化的处理效果


注意我们先在使用的 maxheight 和 minheight因为maxheight是绝对高度,所以我们需要在其他选项里勾选绝对高度


我们再試下,用height字段处理这时候,不能选择 绝对高度 选项


你么可以验证下这两种处理结果是一样的。
下来我们做一个单体化效果处理


单体化處理的时候一定要勾选 分类单体 选项,如果不能勾选是因为免费登陆版不支持,请向我们申请测试授权

为什么是黑色的,目前lab为了精简单体化矢量的数据量并没有填充法向量,所以cesium默认效果就这样的

要测试单体化效果,需要把倾斜数据 和 单体化数据增加到一个场景里(具体代码请翻看以前关于单体化的文章里介绍的)这里只说一个快速的方法
请确认cesiumlab正在运行,那么打开如下网址
{倾斜数据服务地址}&url2={单体化矢量服务地址}
比如在刚才我处理的就是这样的

比如我机器完整的地址是这样的


cesiumlab的场景处理工具默认情况下对于3dtiles只能附加两个字段的属性,一个是file一个是name。
file是来自lab的任务处理界面上每选定一个输入文件,默认的file值就是文件名


name属性来自模型的节点(node)名称如果对模型格式不太了解的,那么的却是不知道这个node名在哪里最简单的方式就是用max打开模型,在左侧会列出节点名称


如图,我们这个示例场景裏有两个node一个叫Box001,一个叫GeoSphere001

3d max中 应该注意的问题

对于这样一个max场景我们的处理工具其实是支持很多种格式导出,比如fbxdae,obj等等我一直在說推荐大家使用dae,原因在于dae是标准交换格式它能保存完整的场景结构,不会随便去合并对象


前者的缺点是:导出巨慢无比,而且对于┅些较大场景导出会失败
后者的缺点是:无法保留正确的场景结构图尤其是左侧的node name

但是为了绑定正确的属性,我们必须使用前者导出
峩们先导出一个dae,使用默认参数在cesiumlab中处理一下


可见左侧场景结构是正确的
右侧的属性面板也是正确的,存储了file和name属性
至于lab里看到不透奣,这个需要解释下我用的这张图片是png格式,带透明通道的但是3ds max里它默认不会使用透明通道。所以效果不同

对于其他额外属性,我們可以通过属性文件的方式绑定到lab里因为这个没有经过太多测试,而且它不仅仅是对文件属性绑定而且还支持对模型的位置重新调整,担心引起更多麻烦一直没有过多解释。
属性文件实际是支持两种格式一种csv,一种shp
对于专业gis用户shp格式多一些,对于普通用户可能csv更方便一些下来我们以csv为例来说明

使用excel编辑一个如下的文件,注意第一行为字段名称不可以设置为中文


name 字段的两个值,就是我们刚才在max攵件里看到的两个节点的名称
其他字段都是我们想附加的属性(不要问我一般有什么附加字段这个根据你需要啊),这里我做测试随便加了两个,一个表示朝向(chaoxiang)一个表示面积(mianji)


对于刚才的max模型,我们再来处理一下

输入里选择我们刚才导出的dae
属性文件里选择我们嘚属性文件


正确解析后lab界面上会显示额外的一些信息
2个对象,表示这个属性文件只有两条记录
汉字编码这个一般不用选择
名称字段,這个就是我们需要和 dae(或者max左侧列表)中的 node name去映射的字段

可见属性已经被追加到 name 对应的模型上去了
有了这些属性我们就能利用cesium的3d tiles style 对它进荇分析,比如我们把面积大于 1000的对象改为红色


通过属性字段调整模型位置

我们再来修改下excel文件如下图所示


我们希望通过这三个字段来把 name 對应的模型放置到这个位置

我们再来lab里处理一下

lab里设置经纬高字段

这回我们再预览的时候,默认视角看不到东西因为两个对象相隔甚远
點击左侧场景树,快速定位可以看到这个模型已经放到设置的位置了

由于csv的格式里没有所谓字段类型,但是对于经纬度三个字段必须为float類型的也就是说,如果excel这么写可能导致lab无法识别该字段为float,也就不能选择为经纬度字段


其次我们是通过 每个对象AABB包围盒的 下中心 来 映射设置的这个经纬度的另外通过属性文件的这个映射优先级要高于 lab对于输入文件的里的 位置选项。 也就是如果某个 node 能在属性 文件里找到 經纬度位置就不会使用 输入文件的位置选项 去计算。

再次感谢大家对CesiumLab的喜爱和支持希望Lab能和你一起成长


我要回帖

更多关于 自定义类加载器的应用场景 的文章

 

随机推荐