by 游梦
关键词:蜘蛛侠、室内映射、假室内
大家一起先找茬,半分钟找出下图中穿帮镜头
(图源:https://zhuanlan.zhihu.com/p/159439811)
答案揭晓:
可以看到室内门的位置,在建筑不同视角下的位置不匹配,在建筑右侧时,理论上透过窗户可直对室内门的方位,但是门却出现在了侧方位。
实际上建筑内部并没有真实的室内建模,只是对一张室内景象纹理使用假室内(室内映射:Interior Mapping)的技术模拟出来的效果,该效果在游戏与电影行业都有广泛的运用
游戏中穿帮的场景还有:
在《守望先锋》中玩家发现了一面神奇的窗户,从外面看是玻璃窗能看到室内景象,但是从室内看确实一堵墙。
(图源:https://zhuanlan.zhihu.com/p/159439811)
在《极限竞速:地平线4》中的街景也用到了假室内效果:
(图源:百度图片)
假室内效果优势:
很显然该技术有以下几个优势:
- 仅用一张贴图就可以模拟室内景象
- 不用真实的室内建模,省时省力
- 相比室内建模,渲染时也节省了大量性能消耗
GIS行业适用场景设想:
身在GIS领域的小编看到此类技术,便想到了是否可以在GIS行业中得以应用,设想过以下三种应用场景:
- 一个楼盘电子沙盘,可以透过窗户看到里面的装修效果图
- CIM城市级别的简模,使用外墙纹理 + 窗景加室内效果,为单调的冰冷建筑增加几分活力
- 商业街电子沙盘夜景,实现镜头漫游在街道,预览商铺室内装修效果
引擎推荐:
这里推荐大家一款GIS引擎,也是首款集成假室内效果的引擎:
Mapmost SDK for WebGL作为一个3D GIS引擎,勇敢的做出尝试,为单调的建筑外墙增加室内细节效果,细节满满,敬请体验:Mapmost SDK for WebGL
(图源:Mapmost SDK for WebGL)
(室内图,图源:Mapmost SDK for WebGL)
假室内原理简介:
一句话简单概括就是,把房间抽象成一个立方体,求视线与立方体的交点,选取远交点,最后计算远交点在图片中的UV进行采样
(窗口坐标系示意图,图源:https://zhuanlan.zhihu.com/p/574281493)
(视线交点示意图,图源:https://zhuanlan.zhihu.com/p/376762518)
假室内核心关键点:
1. 立方体求交
视线与AABB(轴对齐包围盒)的相交问题,一个包围盒有6个矩形面,把两个互相平行的矩形看成一块板,那么问题就转化为求射线与互相垂直的3块板的相交:
(AABB求交示意图,图源:https://zhuanlan.zhihu.com/p/376762518)
2. 立方体贴图:
参照的文章里都推荐的立方体贴图方法,先把室内贴图6个面分别渲染到6张纹理中构建一个立方体贴图。
(图源:https://zhuanlan.zhihu.com/p/376762518)
使用立方体贴图有一个缺陷,就是在一次DrawCall中,受显卡硬件限制存在数量上限,一般不超过8个立方体贴图,所以小编觉得更适合使用纹理数组的方式,只需要根据交点判定所在的平面对应的纹理索引即可,这样即便一个墙面有多个窗户时,也可以提供更多的室内纹理渲染。
3. 坐标系构建:
模型本身需要携带表面的法线与切线信息
(图源:https://zhuanlan.zhihu.com/p/574281493)
眼见一定为真吗?
(A块与B块颜色一样吗?图源:百度图片)
(线是弯曲的吗?图源:百度图片)
(凹还是凸?图源:百度图片)
参考文献:
https://zhuanlan.zhihu.com/p/376762518
https://zhuanlan.zhihu.com/p/574281493
https://zhuanlan.zhihu.com/p/159439811
关注Mapmost,持续更新GIS、三维美术、计算机技术干货
Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。
欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态