Page 63 - 电力与能源2023年第三期
P. 63
王志科,等:大规模城市场景数据在 Unity 3D 中加载及渲染技术的应用 257
后使用相似选取功能中的法向相似,即可达到选 综合型游戏开发工具。
取所有顶面的目的,并且不会出现错误或者遗漏 Unity 3D 可 以 运 行 在 Windows 和 MacOS
[2]
的情况 ,选取结果如图 1 所示。 下,可将程序打包发布至 Windows,Mac,Phone,
i
Android,Web GL 等平台,是一个全面整合的专业
的游戏引擎。
VRS 平台是基于 Unity 3D 打造的一个虚拟
现实电网生产管理平台,平台在 Unity 3D 的基础
上引入了数字地球、卫星影像、地理高程等三维
GIS 平台的基础支撑应用,还增加了针对变电站、
架空线路、地下电缆等业务应用的实用化功能。
图 1 城市建筑模型面分离选取结果
城市建筑数据在三维场景中展示,能够使三
完成顶面的选取后,可通过面的拆分或分离功
维场景内容更丰富,更能够真实还原出周围环境
能,实现对建筑模型顶面和侧面的拆分或分离工作。
的真实情况。然而在三维场景中渲染海量城市模
1.4.2 城市建筑模型材质贴图
型,会导致需要渲染的三角面数增加,增加系统渲
建筑模型顶面与侧面分离完成后,需要对模
染的压力,因此需要有对应的算法优化渲染过程,
型进行材质贴图。模型贴图需要对顶面和侧面分
解决海量数据加载可能导致的卡顿问题。
别进行 UV 贴图操作。
2.2 三维场景渲染技术分析
楼体侧面贴图处理流程如下。
渲染是由一个三维场景出发,生成一张二维
(1)新建一个名称为侧面的材质;
图像的过程,计算机需要从一系列的顶点数据、纹
(2)进入编辑模式,通过特征选取工具,按照
理数据等开始,把这些信息最终转换成一张人眼
侧面特征选取场景中所有建筑的侧面;
可 以 看 到 的 图 像 ,这 个 工 作 通 常 是 由 CPU 和
(3)通过柱面投影,进行所有建筑侧面的 UV
GPU 共同完成的。可以把计算机的渲染过程分
映射;
[3]
为 3 个阶段:应用阶段、几何阶段、光栅化阶段 。
(4)通过楼层高度和贴图的大小,计算 UV 位
应 用 阶 段 由 应 用 程 序 主 导 ,由 CPU 负 责 实
置及缩放比例;
现,此阶段需要准备好场景数据,如摄像机位置、
(5)给选中的建筑侧面指定侧面材质。
楼体顶面贴图处理流程如下: 场景中包含哪些模型、使用的光源特效等,为了提
升渲染性能,还需要进行一个粗粒度的剔除工作,
(1)新建一个名称为顶面的材质;
将场景中不可见的物体剔除出去,从而减少渲染
(2)进入编辑模式,通过相似选取工具,按照
法向量相同特征选取场景中所有建筑的顶面; 的数据量。此阶段完成后,输出的结果为包含点、
线、三角面等数据的渲染图元 。
[3]
(3)通过视角投影,进行所有建筑顶面的 UV
映射; 几何阶段由 GPU 负责,处理所有和需要绘制
(4)调整 UV 位置及缩放比例; 的几何相关的内容,会对渲染图元进行逐点、逐多
(5)给选中的建筑顶面指定顶面材质。 边形的操作,将顶点坐标变换到屏幕空间中,输出
屏幕空间的二维顶点坐标、每个顶点对应的深度
2 海量城市场景数据渲染技术实现
值、着色等相关信息,并传递到下一阶段。
2.1 Unity 3D 引擎及 VRS 平台介绍 光栅化阶段是根据屏幕上的像素渲染出最终
Unity 3D 是 由 Unity Technologies 公 司 开 发 的图像。此阶段需要对上一阶段得到的逐点数据
的一个让玩家轻松创建诸如三维视频游戏、建筑 进行插值,然后再进行逐像素处理,最终决定每个
[3]
可视化、实时三维动画等类型互动内容的多平台 渲染图元中的哪些像素应该被绘制在屏幕上 。