超有趣的视觉欺骗

news2024/9/22 11:36:49

by 游梦

关键词:蜘蛛侠、室内映射、假室内

大家一起先找茬,半分钟找出下图中穿帮镜头

(图源:https://zhuanlan.zhihu.com/p/159439811)

答案揭晓:
可以看到室内门的位置,在建筑不同视角下的位置不匹配,在建筑右侧时,理论上透过窗户可直对室内门的方位,但是门却出现在了侧方位。

实际上建筑内部并没有真实的室内建模,只是对一张室内景象纹理使用假室内(室内映射:Interior Mapping)的技术模拟出来的效果,该效果在游戏与电影行业都有广泛的运用

游戏中穿帮的场景还有:

在《守望先锋》中玩家发现了一面神奇的窗户,从外面看是玻璃窗能看到室内景象,但是从室内看确实一堵墙。

(图源:https://zhuanlan.zhihu.com/p/159439811)

在《极限竞速:地平线4》中的街景也用到了假室内效果:

(图源:百度图片)

假室内效果优势:

很显然该技术有以下几个优势:

  1. 仅用一张贴图就可以模拟室内景象
  2. 不用真实的室内建模,省时省力
  3. 相比室内建模,渲染时也节省了大量性能消耗

GIS行业适用场景设想:

身在GIS领域的小编看到此类技术,便想到了是否可以在GIS行业中得以应用,设想过以下三种应用场景:

  1. 一个楼盘电子沙盘,可以透过窗户看到里面的装修效果图
  2. CIM城市级别的简模,使用外墙纹理 + 窗景加室内效果,为单调的冰冷建筑增加几分活力
  3. 商业街电子沙盘夜景,实现镜头漫游在街道,预览商铺室内装修效果

引擎推荐:

这里推荐大家一款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——让人与机器联合创作成为新常态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为 Laravel 提供生产模式下的容器化环境:打造现代开发环境的终极指南

为 Laravel 提供生产模式下的容器化环境:打造现代开发环境的终极指南 在现代开发中,容器化已经成为一种趋势。使用 Docker 可以让我们轻松地管理和部署应用程序。本文将带你一步步构建一个高效的 Laravel 容器化环境,确保你的应用程序在开发…

Modbus从站模拟软件

下载地址: Modbus从站模拟软件资源-CSDN文库

linux创建用户并免密切换

useradd ansible passwd ansible 加入到wheel组 sudo usermod -G wheel ansible 编辑文件visudo ansible ALL(ALL) NOPASSWD:ALL chage -M 99999 ansible #设置密码永不过期

2024上半年热门内容透视 | 品牌种草解析

2024年上半年,小红书平台“考公上岸”、“不确定性”、“重养自己一遍”、“人生是旷野”、“原生家庭顶配”等话题热议之下,透露着消费者怎样的需求? 综合热门内容及小红书用户的分享发现,变数和不确定性成为新常态,消…

PTrade常见问题系列18

客户反馈某代码L1快照有延迟? 客户反馈某代码9.30.12的快照在9.30.12策略没有获取到,在9.30.17才获取到? 1、由于交易所的快照不是严格按照3s下发的,例如快照在9.30.12.300更新了,客户策略在9.30.12.100执行到&#…

什么是文档签名证书?如何获取文档签名证书?

在数字化高速发展的当今时代,各行各业都开始向数字化转型,随着国家大力倡导和积极推进数字化,电子文件的应用越来越广泛。然而,电子文件包含了个人隐私、金融交易、电子处方、合同协议等敏感信息,如何确保这些重要文件…

Python开发框架FastAPI系列(1. 初体验)

本文为系列文章Python开发框架FastAPI系列的第一部分。 缘起 其实Python的Web开发框架已经有很多了,包括老将Django和后起之秀Flask都做得很好,各有各的特色。那么为什么FastAPI作为一个后来者,短时间内就人气飙升呢?我也是看到…

【linux】【操作系统】初始化程序之main.c源码阅读

/init/main.c是Linux操作系统启动过程的核心部分,它负责初始化硬件、设备、内存和系统服务,以及启动第一个用户进程,为后续的系统运行奠定基础。 详细解析 1. 内联函数定义 fork, pause, setup, sync: 这些函数被声明为内联,意…

解决secureCRT乱码设置UTF-8显示中文

永久性配置UTF-8 在SecureCRT的安装文件夹中搜索“Default.ini” 找到D:“Filenames Always Use UTF8”00000000,将最后的0变成1,即:D:“Filenames Always Use UTF8”00000001 将S:”Output Transformer Name”Default修改为S:”Output Tran…

如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据

背景介绍 网页数据的抓取已经成为数据分析、市场调研等领域的重要工具。无论是获取产品价格、用户评论还是其他公开数据,网页抓取技术都能提供极大的帮助。今天,我们将探讨如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据。PHP Simple H…

SPSSAU | 最好最差权重BWM原理及案例实操分析

BWM(best-worse-method,最好最差法)是一种多准则决策方法,由Jafar Rezaei于2015年提出,其通常用于确定决策标准的权重。其原理是比如5个指标,如果以前AHP就需要5个指标两两的相对重要性数据。但是现在简化为…

CSS实现文本溢出处理

1.单行文本溢出 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wid…

如何利用DFMEA优化产品设计?

在快节奏的产品开发周期中&#xff0c;DFMEA如同一双锐利的眼睛&#xff0c;帮助团队在设计初期就识别并预防潜在的问题。它不仅仅是一种分析方法&#xff0c;更是一种系统化的思维工具&#xff0c;通过深入分析每个设计元素可能发生的失效模式、原因、影响及严重程度&#xff…

Vue3父子组件传属性和方法调用Demo

Vue3父子组件传属性和方法调用Demo 说明目录父组件给子组件传值和方法父组件给子组件传值-使用defineProps接受父组件属性值父组件给子组件传值-使用defineModel接受父组件v-model值当子组件只需要接收父组件一个v-model值时,写法1如下:子组件接收单个v-model写法2如下:当子组件…

设计界的新宠:5款热门UI在线设计软件评测

随着用户界面设计行业的蓬勃发展&#xff0c;越来越多的设计师进入用户界面设计。选择一个方便的用户界面设计工具尤为重要&#xff01;除了传统的用户界面设计工具&#xff0c;在线用户界面设计工具也受到越来越多设计师的青睐。这种不受时间、地点、计算机配置限制的工作方法…

12. 计算机网络TCP四次挥手

1. 前言 上一章节分析了 TCP 建立连接的过程,既然有建立连接,对应的也有断开连接。数据传输完成之后,客户端和服务器端保持通信状态会占用资源开销,所以需要断开连接,TCP 协议中断开连接也被称为 TCP 四次挥手。 2.1 TCP 四次挥手 面试官提问: 说明一下 TCP 断开连接的…

Azure AD 配置角色,在Blazor中从Claims读取角色

首先是在 Microsoft Entra admin center 中配置你的应用程序角色 然后分配用户到你创建的角色 1. 首先从下图找到你要配置的程序 2. 然后找到分配用户到角色的地方 选择用户 再选择角色 这样就成功给用户分配了权限 接下来就可以在Blazor页面中读取了 using Microsoft.AspNe…

安居客全国小区(名称、价格、地区、地址)数据快速整理导出

安居客二手房小区全国(南京|重庆|青岛|天津|杭州|成都|沈阳|武汉|长沙|西安)实时数据&#xff0c;含小区名称、价格、地区、地址、商圈、标签、经纬度、物业类型、交易权属、竣工时间、产权年限、开发商、总户数、总建面积、绿化率、容积率、统一供暖 供水供电、停车位、停车费…

ruoyi若依框架中货道关联商品

<el-button link type"primary" click"handleGoods(scope.row)" v-hasPermi"[manage:vm:edit]">货道</el-button> <!-- 货道组件 --> <ChannelDialog :goodVisible"goodVisible" :goodData"goodData" …