Skip to content

场景基础模版

1 配置文件

场景基础模版生成后会自动已内容 id 和内容版本号命名, 在左侧的 Hierachy 层级视窗中会自动生成以下文件列表

  • World 是场景中所有内容文件的父级,地图模型和所有内容相关文件都需要放在 World下作为子级.强烈建议一般情况下为了保证运行质量不要对该名称进行更改。
  • World 以下的文件( EventSystem, Manager, mainState, Main Camera)都属于系统配置文件,强烈建议一般情况下为了保证运行质量不要随意进行更改和删减。

2 UI

在 HintController-initpanel 中可以对场景模版内的 UI 进行更改, 我们建议一般情况可以针对不同识别场景修改识别 UI 和提示语, 其它 UI 不要随意变更.

3 内容地图模型

现场场景内容建图后生成的三维模型位于 World 的子级,显示名称为 Land.模型为 obj 格式,附带真实场景纹理和遮罩、阴影效果的材质球。

内容地图模型功能:

  • 提供现实三维空间帮助对内容可视化放置调整

  • 作为隐藏虚拟对象的遮罩

  • 模拟内容投射阴影到真实世界效果

  • 作为刚体辅助制作各种物理效果如弹跳等

    ⚠️注意:地图模型按照真实世界场景 1:1 建造,并且原点与空间云锚点对齐. 请不要移动旋转缩放地图模型。

    所有地图模型材质附带有阴影模拟和地图贴图透明度调节功能的 shader,可以模拟自然光在地图模型上投射内容阴影.阴影的强度可以在右侧的网格渲染器中找到地图模型材质球 RealityScene, 在 Shadow Intensity 参数条进行调整。

    下载到本地的地图模型可以在 Assets > Maps 中找到, 可以将模型拖出 Unity 在三维模型软件中根据需求进行二次修改.

    这里以美院象山校区的 mesh 为例.整个场景中有非常多植物,这些 mesh 面片数多非常吃性能.内容基本制作完成后我们可以将地图 mesh 根据内容需求进行编辑删除不必要和穿帮的 mesh 面片.

    模型在模型软件处理完后导出为 OBJ 格式再导入 Unity,⚠️二次修改时不要修改模型的尺寸和原点位置.

    将原地图模型(以 Land 命名的模型文件)的 mesh 替换成修改好的地图模型 mesh(见下图)即可.

    除了修改地图模型外在许多情况下我们也可以直接隐藏地图模型通过手动拉面片的方式构建遮罩.详细方法见下方遮罩部分内容.

    4 遮罩

    遮罩是让 AR 内容可以和现实场景自然融合的重要部分,使用编辑器的内容地图可以直接作为预制遮照制作虚实融合效果.为了保证编辑器支持大部分设备减少卡顿,我们的内容地图模型都会处理成 20 万面以下。在减面的过程中会选择性抛弃一些细节。很多地点也会有一些场景内容临时变动增加,这就需要增加一些定制遮罩内容。在空间编辑器中我们附带了一个遮罩材质球,可以对其灵活使用来定制遮罩内容。

    遮罩材质球位于

    目录中, 将其赋予作为遮罩的模型就可以得到遮罩效果.

4.1 精简遮罩

在很多内容场景中,内容并不需要非常细节的遮罩,为了节省资源开销可以简单拉取一些基本形状制作遮挡.以下方的设计博物馆内容为例子.下方这个恐龙内容,只需要设计博物馆建筑大致轮廓的遮罩.以及地面遮罩来接收阴影.

我们可以在 Unity 中添加 Quad, 然后将 Quad 拉成与建筑物表面拟合的面片.添加 Shader 为 Realityscene 的材质球作为遮罩. 同时在地面拉一个大面片接收阴影.导出内容时将用于参照的地图 mesh 隐藏即可.

不同内容对于遮罩的要求不同,可以使用这个思路灵活变通.

4.2 树木遮罩

对于树木等不规则物体的建图技术目前还没有非常好的解决办法, 建议内容避开与其发生精细遮挡关系,可以采用以点云为依据拉取最大直径遮罩等方法制作遮罩.在 Unity Game object 中添加各种几何体,附上遮罩材质即可.

⚠️注意:遮罩内容的 cast shadow 一定要关掉,不然遮罩的投影会发生穿帮