昨夜注定令人难忘。
年9月2日晚上8点,杭州奥体中心(“大莲花”)主体育场,人声鼎沸、座无虚席。接近两小时里,良渚之印、钱塘浪潮、曲院风荷、嵊州越剧......一幅幅唯美画卷,让人再次感受“中国式浪漫”。
开幕式接近尾声时,又出现一个惊喜画面:承载了亿万人热情的巨型数字火炬手,跨着大步从城市远方奔来,踏过波澜壮阔的钱塘江,来到开幕式现场,奔向主火炬塔。运动员火炬手、现场近10万观众、线上上亿网民,共同点燃主火炬,场面看起来让人沸腾。
这场数字点火仪式的技术支持,由支付宝提供。方凯与同事们在现场值守,保证数字点火仪式顺利进行,此刻他们思绪涌动,共同回忆起了第一次来到奥体中心的画面——
四个月前,这里空无一人,开幕式舞台还没开始施工,这支“支付宝”技术小分队,面对着总建筑面积超过20万平方米的“大莲花”犯了愁。
1亿人点燃亚运圣火方凯是支付宝数字火炬手项目的前端技术负责人,也兼管2号晚上的数字点火仪式。他和同事们与亚运会开幕式团队共同头脑风暴时才发现,项目难度远超预料。
可能在电视机前刚看完开幕式的你,对于这个难度没有太具体的概念——这个数字点火仪式,意味着有10万人在同一时段、同一地点,一起打开支付宝小程序做AR识别。第一道关卡是AR识别准确率。
按理说,搞手机AR识别,支付宝应该是国内经验较为丰富的梯队成员,“集五福”的扫福字、蚂蚁庄园的AR小游戏……这一溜AR玩法做下来,已经是颇有积累了。但在亚运会开幕式,这事儿就不一样了。
玩过扫福字的网友都知道,得用手机摄像头对准一个福字,这就是AR在扫描前提前确定一个识别物。可是开幕式必须在晚上,光线昏暗,又有严格的灯光要求,绝不可能为了方便扫描而额外打光,10万观众每个人的位置、视角又各不相同,这就导致识别物的确定难度直线上升。
这便有了开头那个场景,这支支付宝技术小分队坐惯办公室敲代码、用惯机器跑测试,这回得在“大莲花”跑上跑下采集数据。
杭州奥体中心共分为层,每层又分8个区,在座位上下左右个点位,以不同姿势、不同角度、不同方式采集10-20秒数据,再把每个点位在每一次灯光变换后的情况录下视频,最终形成60°无死角的数据供AR识别进一步优化,累计采集了超过40万帧的影像数据。
方凯为此在支付宝内部“摇人”,无论产品、运营还是研发岗,统统喊上,组成了一支24人的采集大队,保证将最准确的数据带回。
但AR识别成功后,数字点火的视觉效果又当如何?数月前,支付宝技术团队和其他视效供应商一起挤在会议室里,长桌的另一头坐着亚运会开闭幕式的总导演沙晓岚。年北京奥运的灯光设计,便出自沙晓岚之手。
沙导抛出了一个略显尖锐的提问:必须做到影视级渲染效果,支付宝不是做影视出身的,能做好吗?支付宝对很多技术都熟悉,对AR也颇有把握,但怎么让沙导相信支付宝能完成任务?——这便是第二道关卡。
为此,方凯和技术同学们决定兵分两路,一方面通过自研技术保证AR里球面透明视频顺利播放,特别炫酷的视觉效果通过离线渲染完成,另一方面也找来了专业影视公司“打辅助”打磨视效水平。
打磨数字火炬手
为了确保整体效果,方凯带着同事们先后奔赴彩排现场5次。“第一次去的时候,现场还是纯工地环境,那里还没有搭舞台。”方凯回忆道。
随着时间流逝,支付宝团队对项目的把握越来越大,得到的信任与肯定日渐增多,也亲眼见证了“大莲花”的花心逐渐长出开幕式的华美舞台。
方凯还记得某次数字点火的彩排,要等观众联排结束之后才能开始,他们和导演团队一起饿着肚子加班到深夜。他打包了十多人份的烧烤当宵夜,在主席台旁的总控室里一字排开。这时沙晓岚踏进总控室,惊讶道:“你们还有这么多人在这儿!”伸手便拿上一根烤串,一道吃了起来。
凌晨一点的钱塘江畔静悄悄,大家一起面朝舞台吃烧烤,他们所望之处,便是数实结合点火仪式的所在,那里将在2日晚上为世人呈上无限的惊喜。
所幸最终合成的效果,获得了沙晓岚总导演的肯定,甚至还有一部分超出了众人的预期。沙导甚至还告诉方凯团队,有些细节做得太丰富精美,要和现场保持一致的话,只能忍痛砍去。
Galacean:数字火炬手、数字点火的“幕后功臣”这次亚运会开幕式的点火仪式,导演团队一直强调,希望“最大限度让更多人参与进来”,因此杭州亚组委采用了“数实点火”的创意,鼓励大家通过“智能亚运一站通”平台,争当火炬接力手。
只要打开支付宝的数字火炬手页面,无论网友身在何处,都能参与到活动中来。
数字火炬的传递参与总人数,在9月15日这天,已经突破1亿人。
1亿是个什么样的数字?意味着这可能是历届亚运会中覆盖区域最广、参与人数最多、持续时间最长的线上火炬传递活动。
无论是数字点火仪式,还是超过1亿人参与的数字火炬手,它们的顺利运行都离不开蚂蚁自研的一项独门武器——Galacean,一项WebD互动引擎技术。
简单来说,WebD互动引擎技术就是构建虚拟世界的“工具箱”,这个工具箱里有渲染、动画、物理模拟和用户互动等工具,以构建复杂的虚拟体验。
在亚运的数字火炬手场景中,人们点击屏幕进行捏脸、换装、火炬传递等等,都需要WebD互动引擎为其提供必要的工具和技术支持。
近年来,虚拟现实席卷而来,在线教育和企业应用等领域的需求猛增,这使得对WebD引擎技术的需求也与日俱增。
遗憾的是,市场上主流的D互动引擎,如Unity和UnrealEngine等,多运用在游戏场景,均由国外公司开发,对终端设备的性能要求较高。然而,这与亚运会火炬手的需求截然相反。亚运会是一个全民参与的盛事,即使是老旧型号和非高端机型的用户也必须能顺利参与火炬传递,这意味着选用的引擎必须能适配所有机型。
此外,因为“智能亚运一站通”基于支付宝小程序开发,所以WebD技术也得无缝地集成到支付宝客户端中。
今年1月,郭磊带着团队加入了“支付宝亚运专班”,开始为“数字火炬手”项目提供WebD互动引擎技术支持。
他告诉雷峰网,市面上绝大部分引擎都没法同时满足可被集成、适配所有机型——蚂蚁只能选择自研WebD引擎。
为了更好保障新老机型都能顺畅运行数字火炬手,今年,项目组特地设立了一个大型测试机房,放置了数百台不同年代及型号的手机,进行了超10万次的测试,只为验证Galacean的每一次顺利运行。
支付宝工程师对上百台手机进行技术测试
“现在,哪怕你的手机是8年前买的,也能参与进来。”
遥想年的韩国仁川亚运会,组委会也曾想为每个数字火炬手打造“一人一面”,但囿于当时的技术,这一构想最终还是用吉祥物代替了线上火炬手。如今,“千人千面”的数字火炬手终于得以在上亿用户的手机屏幕上出现,这样的成果让郭磊感慨万千。
“Galacean其实并不是为某个具体业务而生的,它是一个开源开放的技术产品。”郭磊透露,该引擎不仅会服务于内部,也会对外输出。以支付宝小程序为载体,各项技术都将通过开放平台供合作伙伴调用,近期中国移动推出的亚运元宇宙项目,也正是由Galacean支持的,大大提高了项目开发落地的效率。
技术变迁,在一个个极限挑战中产生这场亚运盛会,数实点火的呈现固然惊艳,但话又说回来——支付宝怎么就揽下了这个看起来和主营业务风马牛不相及的“苦活儿”,怎么就去啃了WebD互动引擎这块“硬骨头”?
事实上,这正是成名多年的大公司的路径——通过一次次“大考”,倒逼技术突破、创新发生。当年的“双11”“”,其深层含义是互联网公司主动制造最高流量峰值,倒逼出一场旷日持久的生态供应链和技术能力、管理能力变革。
支付宝就是从大考中“杀”出重围、“杀”出名堂的。譬如年,支付宝团队在双十一经历了后来广为人知的「4秒惊*」。当年11日的2时59分0秒,双11结束前半分钟,支付宝核心账务系统突然报警,资源行将耗尽,所有业务系统差点挂掉。
也就是这4秒,坚定了支付宝后来的“去IOE”之路,以及全面启动架构体系的变革——分布式数据库OceanBase、分布式架构、异地多活架构等。
然而,大考并非年年有之、次次奏效,每一年的“双11”“”也不再如当年那样惊心动魄、充满考验。互联网公司更需要不同类型、大大小小的考试,不停演练,来推动自己全方位进步。
技术是很难保持长期领先的。奇绩创坛创始人兼CEO陆奇此前曾指出,一家企业的技术能力与两点强相关:
一是该企业所处理的Workload(技术难题)。例如Google之所以形成了独特的工程师文化,原因之一就是搜索必须要解决一系列非常难的技术问题。
再比如当年LinkedIn(领英)遍寻优秀工程师而不得,干脆咬牙做了个野心大一点的系统,也就是后来的Kafka。现有业务看似不需要如此强大的系统,但工程能力和人才储备果然有所进步。
二是企业背的TechDebt(技术债),大部分的企业技术债越欠越重,因为技术底层在变,应用在变,当中齿轮转得越来越慢,自然没有创新可言。
支付宝作为一个支付工具出身的App,看似不需要研究什么游戏引擎视觉效果,看似不需要研究亿级在线玩游戏的场景,却正好在这个演练过程中,不断提高Workload、降低TechDebt。2年,支付宝团队首次在亿级国民参与项目“集五福”中上线了福气乐园,这一类元宇宙沉浸式互动场景中用上了Galacean引擎。
玩过的朋友应该都会记得,进入福气乐园后,会自动生成一个数字形象,你能在乐园四处“溜达”,偶遇其他数字形象,和TA拜年、交换福卡,还能用沾福气卡沾TA的福卡等。
福气乐园
伴随数字人项目推进,技术团队还同步启动支付宝浏览器引擎的升级,确保Galacean的物理功能可以在各类终端设备上运行更灵活,并支持未来更多虚实交互场景的应用创新。无意间,这成为今天更好服务杭州亚运会数实融合点火仪式的提前拉练与筹备。
大考从未停止过,从当年的双十一,到集五福,再到如今的数实点火。过去二十年里,支付宝的发展史基本都是如此演绎:在一个又一个超大型项目中演练、蜕变。而这些努力最终都指向同一个愿景:普惠。
起初,支付宝用三台台式电脑、一张Excel表单,实现了中国人线上担保交易购物,后来支付宝用小小的