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]
                可视化、实时三维动画等类型互动内容的多平台                            渲染图元中的哪些像素应该被绘制在屏幕上 。
   58   59   60   61   62   63   64   65   66   67   68