我们把高精度复刻的长城,装进这个小程序里

2016年起,中国文物保护基金会、腾讯公益慈善基金会联合启动“保护长城,加我一个”修缮项目,陆续完成了北京怀柔箭扣南段、河北喜峰口西潘家口段(下文中简称喜峰口长城)、北京延庆八达岭古长城段的长城保护修缮。
其中,喜峰口长城是在2021年完成修缮。而我们还有一件事情在做:为这段大约1公里的长城留下一笔数字资产。今天这项工作已经阶段性完成,并以云游长城为名的体验展现在今日上线的「云游万里长城」小程序里。
这是我们首次应用了云游戏技术的文化遗产数字化保护项目,小程序使用了 Photogrammetry(摄影测量)重建技术和 UE5 引擎技术,高精度还原了喜峰口长城的真实现状,并打造了超写实、沉浸互动式的修缮体验数字场景。
你可以通过腾讯公益小红花以及明星向导的语音指引,游览喜峰口长城,并学习包括长城排水口的分布、礌石孔、破损敌台、射孔、箭窗、刻字砖和敌台入口等科普知识。
图片
你还可以互动体验修缮长城时需要经历的清理考古、砌筑、勾缝、砖墙剔补和支护加固等流程,沉浸式了解长城的建造和修缮知识。
图片
选择 Hard 模式
当今,数字技术在文物修缮保护上的应用已非常广泛,但采集到的数据大部分被放进档案室或者服务器,离观众甚远。
当我们决定为这段刚完成修缮的长城留下一笔数字资产时,就提出更远的设想——让公众能随时随地,身临其境地在数字长城里自由走动,欣赏长城的一砖一石,一草一木,从晨间,到傍晚,甚至能在这里过一把修缮长城的瘾。
为此,我们请来了腾讯互动娱乐公共研发运营体系(Tencent IEG CROS)的同学们来实现这个想法。这个需求一开始得到的答案是,难!因为身临其境代表着高精度的场景还原,我们还设想给用户戴上一副放大镜去欣赏更多细节,这都意味着背后所投入的技术能力与工作量之大。
具体来说,就是包括长城所处的地形,长城的本体乃至周边的植被、河流等所组成的数字资产,质量要求远远高于一般游戏制作的标准。
我们来简单还原一下游戏数字资产的研发过程:先采集当地的物理数据,然后完成建模、贴图,再交给引擎进行渲染。就像盖一座房子,先打地基做框架盖成毛坯房,再进行装修。与人靠肉眼就能感知自然画面所不同的是,数字资产还需要渲染这一步,来完成人在房子里里外外所看到的关于房子与环境的一切画面。
图片
当建模、贴图的工作越精细,我们最后能看到的角度才越丰富,画面才越逼近真实。而云游长城小程序,便是选用了这个 hard 模式。
10亿个面片,5万张高清照片
首先是建模,云游长城所使用的 Photogrammetry 技术,运用激光测量,高清图片采集以及无人机拍摄记录等方法,来实现对约1公里长的喜峰口长城的精准测量,为数字资产实现照片级还原打下基础。
如果扫描拍摄的是一座四平八稳的建筑,哪怕是看起来平整连续的长城,所需要的时间肯定会少很多。而 CROS 团队所面临的喜峰口长城,却是经过岁月侵蚀的古长城,科学理念指导下的修缮,只是暂停了它衰老的速度,并未能填平那些已经残缺的坑洼,或者自然沉降带来的断层和弯曲。
也就是说,高精度还原本就决定了不小的扫描拍摄量,而像喜峰口长城上破损的地方一定要用更细腻的面片才能逼真还原,这无疑带来更大的采集工作负荷。
当你在云游长城中体验的时候,如果遇到中间一段不自然弯曲的台阶,以及部分边墙上突兀的棱角,这不是数字资产的瑕疵。相反,这是高精度的建模与贴图还原了现场因地质运动产生的真实状况。
图片
CROS 团队在长城
整个扫描拍摄阶段,就因为喜峰口长城现场环境的复杂情况,还有疫情的影响,导致对数据处理的量级比预期多花了近3倍的时间。
然而大量的采集是值得的,如近5万张的高清图片为后来的长城本体建模,实现了4.2亿个面片的精度,整个喜峰口环境加起来则有10亿个面片。这些面片,组成了喜峰口长城与环境每一细微处的凹凸起伏。
这个过程,我们得到天津大学建筑学院六合建筑工作室的支持,他们提供了4000公里的27万张缩略图像以及重点区段的高清图像、三维数据等等丰富的示例。此外,我们还与卫星拍摄的地形资源库的地形坐标进行匹配,以求更真实还原喜峰口长城与周边地形。
在喜峰口“种”20万棵树
因为扫描拍摄阶段处于修缮收尾期,我们采集的5万+张图片中,不少记录到了长城地面上的石灰、翻修过程中铺设的水管或临时搭建的架子。这需要美术的同学在贴图时,花费大量的时间进行美化加工,数据修复的难度和工作量都会几何级增长。这个工作量,曾一度劝退了我们的合作伙伴。
数字长城的美术精修示意图为何如此“骇人听闻”?我们做一个通俗的对比。一些影视剧也需要数字制作,然而场景和镜头都是相对固定的。也就是说镜头里的一棵树,只需要在画面的固定角度里完成光照和材质等制作就可以了。
而在云游长城的场景里,当用户能随意“走动”,他对一棵树就能无死角地任意欣赏了,那么同一棵树因为视角变动而被“看到”的光照角度、透光度,树叶粗糙度等多样的表现,使得人工处理和解算工作量暴增。
举例中只是一棵树,而我们在云游长城里一口气“种”了20万棵。植被重建是场景还原当中很重要的工作,可以说贯穿了数字资产制作的全过程。
你可能会想到一个捷径,制作几棵树,然后漫山遍野地铺满就大功告成。但实际上,这只会让场景看起来很假。
得益于扫描拍摄的图片和当地县志中的植物图鉴,CROS 的同学可以了解到喜峰口长城周边的植物类型和分布规律。
在这个基础上,他们定义植被的大小、比率、密度,来实现不同的植被组合。另外,还定义出植被之间的依赖关系。之后还需要设定植被的分布区域,根据峡谷、山峰、悬崖、岸边等不同区域,将之前设定好的植被组合与之对应。
以上的设定,都交给通过算法和参数进行控制的自研 PCG (Procedural Content Generation,过程化内容生成)工具,为喜峰口长城沿线的漫山遍野铺上合理的植被景观。
我们还在材质里给每棵树加了一些颜色变化,给植被加了动态。随机的颜色加上动态让植被看起来更自然。
UE5 引擎+云游戏技术
为了真实还原喜峰口长城的细节,长城模型有多达10亿面片的数字资产。面对如此高精度的数字资产,这一次运用了 UE5( Unreal Engine 5 ,虚幻引擎5)来完成渲染。
UE5 引擎可以让实时渲染画面承载和表现巨量的超高精度模型,体现出真实感和细腻感。其中的 Nanite 技术,让用户在体验的过程中可以尽量减少贴图精度的切换次数,提高整个场景的运行效率,数字长城便可以实现环境形态的“一镜到底”,多达10亿+面的长城数字资产不会发生明显的跳变。
而在光照效果方面,数字长城采用的则是 UE5 的 Lumen 技术,它很好地处理了实时的 Indirect Lighting,可以提供完整的动态的全局光照(Global Illumination)效果。例如在项目中从清晨到中午的光照变化,便是通过 Lumen 来实现。
与影视作品渲染不同的是,游戏的体验是根据用户的视角变动而实时渲染画面。那么要把体量达 30G 的数字资产,通过微信小程序这个载体展示在用户面前,传统的移动端 WebGL 渲染技术已经无法满足高精度画面的低延迟输出。
这一次我们选用的云游戏技术是在文保数字化项目里的首次应用。在云游戏技术的运行模式下,所有渲染有关的高难度动作都在自建的万兆云机房运行。这里面包括自研 AI 超分辨率技术的加持,保证多实例高并发状态下的展示效果。
场景在云端实时渲染完毕后,再借助超强的编码能力,以及深度优化的网络传输能力,云游长城的高清画面会被压缩后通过网络传送给用户。
通常情况下,为了保证数字资产渲染的运行效率,程序在处理大场景时,只会渲染镜头内一定范围的数字资产,远景的数字资产则会通过降低精度的方式,只显示简单的模型和极少的面数;又或者是主动给游戏资产“做减法”,比如减少模型的面片数而牺牲一定的精细度,来提升效率,减少卡顿。
图片
所以,为了在小程序画面里实现高精度输出,同时让进入的用户能获得流畅的体验,那么服务器能接待的访客上限就有所降低了。如果你在小程序中看到排队预约窗口,建议先订阅提醒,待收到通知后即可进入体验。
这段等待的时间,也不妨看看小程序其他的内容
明长城研究专家张玉坤提出过一个非常贴切的概念——长城不止是一道墙或一条线,而是个庞大、复杂的“巨系统”。在云游长城小程序里,我们把贯穿10余个朝代、横跨15个省市区的长城百科,以及各类长城病害防治与保护知识等内容都装进这个小程序。
致谢
单位&机构
国家文物局 中国文物保护基金会 腾讯基金会 腾讯互动娱乐CROS 天津大学建筑学院六合建筑工作室 帝都绘 长城小站
个人(按姓氏首拼音字母)
程永茂(箭扣长城修缮工程技术总负责人) 次立新(河北省文物与古建筑保护研究院) 董旭明(摄影家) 韩昊霖(儿童演员,云游长城青少年宣传员) 李大伟(陕西省文物保护研究院) 连达(古建画家) 濮存昕(国家一级演员,云游长城宣传大使) 尚珩(北京市考古研究院) 尚劲宇(北京大学考古文博学院) 尉舒雅(中国文物保护基金会) 杨东(摄影家) 张若昀(青年演员) 张依萌(中国文化遗产研究院) 张勇(河北省文物与古建筑保护研究院) 赵鹏(箭扣长城修缮工程设计总负责人)感谢以下单位对长城修缮项目的大力支持河北省文物局 怀柔区文化和旅游局 北京市怀柔区文物管理所 宽城满族自治县旅游和文化广电局 迁西县文化广电和旅游局