惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
The GitHub Blog
The GitHub Blog
美团技术团队
Know Your Adversary
Know Your Adversary
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
Attack and Defense Labs
Attack and Defense Labs
G
Google Developers Blog
I
InfoQ
博客园 - 司徒正美
T
Troy Hunt's Blog
Google DeepMind News
Google DeepMind News
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
S
Security Affairs
M
MIT News - Artificial intelligence
Simon Willison's Weblog
Simon Willison's Weblog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Tailwind CSS Blog
量子位
Vercel News
Vercel News
月光博客
月光博客
V
Vulnerabilities – Threatpost
N
News and Events Feed by Topic
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 最新话题
F
Full Disclosure
The Hacker News
The Hacker News
Hacker News: Ask HN
Hacker News: Ask HN
T
Tor Project blog
A
Arctic Wolf
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Forbes - Security
Forbes - Security
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Y
Y Combinator Blog
GbyAI
GbyAI
B
Blog RSS Feed
V
Visual Studio Blog
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测 505游戏母公司现已收购《明末:渊虚之羽》IP | 机核 GCORES 基石 手动杂谈12|格斗游戏也能讲好故事 | 机核 GCORES I Love You Mr Snowball 我的向日葵小姐 会比GTA6先发售吗?最硬核的生存游戏《DAYZ》要推新DLC了 周记02:在2026遇到新怪谈 什么硬件,能让游戏Loading界面快速消失? | 机核 GCORES GadioSpec《百年风云世界杯》免费试听集 | 机核 GCORES 百年风云世界杯Vol.1丨足球崛起 | 机核 GCORES 100年前,一群人提前替我们经历了AI恐惧 | 机核 GCORES 《呼啸山庄》2026 ——一辆当代艺术的大卡车冲撞了我的大脑 手游《天穗之咲稻姬:日之香巡灵传》宣布将于7月27日停服 | 机核 GCORES 集结梦之队,征战世界杯,《最佳球会ONLINE》上线Steam 山水绝景随心拼 休闲建造游戏《千里山河录》Steam商店页公开 巫师帽、法袍、魔杖,为什么它们是影视、游戏里的法师必备三件套? 《无鞘信使》-第一章 复古风自动战斗肉鸽《终结之终结》Steam商店页面现已上线 电脑里有一款不破不立的MMO,录音笔VOL.688 | 机核 GCORES 《生化危机》30周年纪念周边发售,这次是真的“保护伞” 可靠耐用+AI全能,惠普战66 2025锐龙版深度体验 《时之书:无尽终章》关卡“大航海时代”全球首次公开 经典名作《乌龙派出所》改编经营模拟游戏《乌龙派出所~阿两的商店街物语~》正式宣布支持简体中文 明日开冲,解锁反套路三国互动影游《代号三国:龙起》即将上线 独立游戏《这是我的宝藏!》已发售~ 降低难度不是唯一解,无压力死亡也是好体验 Netflix官宣新片《普通人》:讲述韩国现代史上的权力风暴 《生化危机:安魂曲》全球销量现已突破700万份 《绝地鸭卫》PC版5月15日正式发售 亡妻回忆录?女性向情感叙事游戏《S-mail》现已正式发售 全新酷黑风格,酷睿Ultra 200S PLUS的高性价比搭档!七彩虹BATTLE-AX B860M-PLUS S WIFI7 V20 超级黑刃主板测评 胖狗 索尼发布了港台地区PS5产品价格调整公告,将于5月1日起实施 二次元怪猎+性感美女!《碧蓝幻想:无尽黄昏》开启Beta公测 这款怪谈类型中式恐怖游戏居然更新了?! 《百日战纪 -最终防卫学园-》改编漫画将于今年冬季开启连载 《如被附身,请致电我们》:匈牙利黑色幽默恐怖小说 《竹屿山房杂部卷五》(译文) 大树 超越引擎 摄影分享丨四月 碎片杂记vol.72 当老式FPS与老式动画技术碰撞出新时代的火花—《神探杰克鼠》 想做独游,如何避免首个项目就褒姒? 在线多人动作游戏《OCTOPinbs》将于5月12日上线Steam! 《酒鬼女神的酒诡》确定将于2026年登陆Steam 《CRYMELIGHT》将于11月5日(周四)正式发售!4月25日开始预购! 钢铁国度MKI部落Evolution,蛮兵部分 【钢铁国度】部落-Primal MK I,蛮兵部分 这是一个高中生用ai跑出来的作品,我自称他为物理神话 钢铁国度MKI部落Metamorphosis,蛮兵部分上 钢铁国度MKI部落Metamorphosis,蛮兵部分下 INDIE Live Expo于4月25日举办:首发9款新作,超200款独立游戏亮相 暗黑卡牌策略新作《魔忌:穷鼠啮狸》发布全新中文试玩版和发售预告片,4月30日正式上线在即 战锤40K长篇小说:变节者・苦难主宰(三)(全书完) 战锤40K长篇小说:变节者・苦难主宰(二) 战锤40K长篇小说:变节者・苦难主宰(一) 英语语言学习丨短语专题1:短语的特点 唯一的EVE战争 【少前同人】【M200】战术人形会梦见音乐会吗 【昏迷3】即将发售,前作主角悉数到场!“恶灵”宋老师化身可操控角色 业内人士:游戏公司“十有八九”使用生成式AI,包括卡普空 欢庆一周年:《光与影:33号远征队》全新纪念艺术图、超值折扣与免费更新同步上线 才刚刚开始呢 【抽奖】《星际卡车司机》推出免费大型更新,四折平史低折扣进行中 四人合作FPS游戏《佣兵猎手》抢先体验重大更新 1 现已上线 Raw Fury新作《深馅地牢 Deep Dish Dungeon》将于今秋加入 XGP 塔防幸存者游戏《魔怪来袭》推出首个 DLC 《饿狼传说:群狼之城》1周年纪念!新DLC“沃尔夫冈·克劳萨”今日参战 猫狗相伴 欢乐闯关 双人合作平台跳跃游戏《猫狗同行》上线Steam商店页 《同行:月球逃脱》(Together: Moon Escape)上线将于明日上线Steam
游戏中还原真实世界——神奇的镜子
Hakumen · 2024-02-02 · via 机核

前言

过年前准备开一个趣味性强一些的系列,给没什么游戏开发基础的玩家科普一些豆知识,主要谈谈为什么游戏世界还无法完全模拟真实的物理世界,以及一些细节的现状和发展脉络。

这次是玩《波斯王子 失落的王冠》中,我偶然看到一些场景爬墙时会有自己的镜像反射,让我联想到了很多不同3D游戏中的镜子和镜面反射渲染的例子,产生了这个选题。

文中可能有些描述不够精确,但总的来说应该是没有技术认知上的错误。如有不对也欢迎纠正。

1 引擎的默认渲染下的镜子会是什么样

传统的渲染(对比光线追踪来说)方式,介绍到最简单的程度就是先确定三角面,后着色绘制(这里面有一些三角面的组织形式和各种优化,就不展开了)。

一个引擎的摄像机拍摄到的物体,在非递归的情况下(光线追踪就是一个递归方案),为其渲染提供信息的来源是其自身的一些属性定义——例如颜色、反光程度等等,可以提炼称为一个物体的渲染材质(Material)。颜色可以由贴图、自发光颜色、叠加颜色等信息来提供,反光程度常见的有粗糙度模型或金属度模型(处理大多数实心物体);后续其实还引入了一些其它复杂属性,但也没超出预定义的范畴,在当前课题下不展开了。

如果镜子在渲染时的呈现完全来自于这些定义(也是传统渲染方式中常规的情况),结合场景中设置的光源,把这些信息代入到一系列换算中,会得到一个最终的颜色——一个反光程度和明暗程度看着似乎对,但是不能反射其它物体的镜面。

又由于这个镜面很平,所以对于反射的光线,要么几乎看不到,要么就会非常亮。这就只取决于光源和镜子的夹角了。

2 只反射静态物的镜子

如果是固定角度看的镜子,大家可能会想到把需要照出来的物体“截图”下来作为贴图“贴”在镜子上是不是就行了。这种方案实际上的思路也确实如此,整体引入了一种叫预渲染的方案,在编辑时摆好场景后,先生成一个采样好的场景采样资源——常常是一个贴图映射多面体(CubeMap);在运行时,引擎支持镜子的渲染混合场景某一面的采样贴图,呈现反射出场景某个面的效果。这套方案及其扩展也被称为基于图像的照明技术(简称IBL) 。

这种方案除了也看不到动态物体外,其实能想到还有一些问题。例如:

1)正常不同角度看向镜子中的一些物体,其中物体对应的“透视”是会变化的;但是从采样贴图中看过去,由于其实是一张图换了角度看,其实会有些许别扭感,因为是“失真”的。尤其和镜子夹角越大,就越假。

2)光源如果会显著变化,这种采样也是失效的。采样结果的颜色只能均匀变化,可能从基础视觉上都无法反映应有的结果了。(例如加了一个点光源之类)

因为多少有些“不够真”,所以这个方案常常用来以较低的分辨率覆盖场景中各类需要反射的面积不大的材质,例如金属管、泥水坑等等。大场景还常常用表面粗糙、做旧等方案来模糊这个反射面,以减少失真感,同时尽量降低采样分辨率以提高性能。

3 反射动态物体的镜子

我是《赛博朋克2077》的PS4Pro版的早期受害玩家,除了各种流式加载慢导致的BUG外,对于游戏里的照镜子需要“读一下”记忆犹新——当然这个是性能上的Trade Off,是一种妥协后的设计;类似的设计在《死亡搁浅》等游戏里也能看到。(*Trade Off这种不太好翻译的词还是保留其原词,避免为其引入不必要的贬义)

具体来说就是游戏里的镜子,在不交互的状态下看过去表面是模糊的,点了按钮进行交互后才显示出自己照镜子的画面(此时自己距离镜子的距离也相对固定)。一方面原因是常规第一人称视角下自己的头是不显示的(有一个版本影子都没头,这个不展开了);另一方面就是交互后才开启了另一个渲染摄像机,这也是下面要提的第一种方案。

1)镜像摄像机

首先,这个方案是可以覆盖动态物体和光源变化的,显然比前一个方案要“真”很多。不能大规模的、常驻的这么弄的原因也很简单——每多一个额外的摄像机都是额外的性能消耗,即使降低精度都会大大影响其原本的画质空间(可以粗略的理解成要渲染的东西翻了倍)所以如果镜子在画幅中占比很小的时候,虽然也可以常驻开一个摄像机做镜像,但是确实很浪费。

如果对镜像渲染的内容降低分辨率,是否能节省性能呢?答案是只能节省显存,不能减少渲染过程的性能消耗。

这个方案里还有一个优化奇才,就是Capcom——在《生化危机8》里有一段八尺夫人照镜子的过场动画,动画结束后夫人一怒之下打碎了梳妆台,导致镜子也碎了。这一段虽然是实时渲染的,但是镜子中的夫人动画是预渲染的视频(所以如果你的帧数不稳或很低,就能看到镜子内外不同步的“奇观”);之后主角进入场景,由于镜子也打碎了,也就不用耗性能去处理镜子的渲染了。

对于画幅比较大,视角更可控的一些场合,还有另一种镜像渲染的方案。

2)屏幕空间镜面反射

一个经典的场合,假设画幅的大约一半是湖面,另一半是湖面上要反射的场景,这时可以不从湖底打一个摄像机来渲染反射的内容,而是直接用对应反射位置的场景渲染结果进行采样(加点噪声后处理之类)。

这种方案的优势是不用额外的摄像机就能搞定。先渲染场景,再渲染镜面反射的部分;镜面反射的内容是基于已渲染出像素的而不需要从头绘制,性能上优于额外开摄像机的方案。反射算法的核心主要基于一种叫做Ray Marching(光线步进 )的思路。

相应的,限制也很明显,例如反射画幅大于画面中被反射的场景物体的画幅时,就会丢失待反射信息,导致失真——遇到这种情况很多游戏里看着就是黑的不反射,最多加点模糊啥的就糊弄过去了。

在前光线追踪时代,这些渲染的方案往往被称为各种“Trick”;又因为不像物理法则能有普适性,在场景渲染上把这种一事一议的具体需求做好做对,就是渲染优化的重要方面了。(*Trick这种不太好翻译的词还是保留其原词,避免为其引入不必要的贬义)

更多基于实时渲染采样或Ray Marching的方案还有一些,这里就不展开了。

4 光线追踪

经历了前几个话题,了解了反射渲染的一些案例后,就能明白为什么要在性能允许的情况下引入光线追踪了——整体思路上还是想以类似物理法则的方式,用一套泛用性更强的方法解决仿真渲染中的各种光传播问题。现在广义的光线追踪往往指包含了路径追踪(Path Tracing)的一系列解决更真实渲染的方案。

要简单的理解光线追踪,可以认为此时引擎渲染中的视线或光线是可以递归弹射的,这种弹射和传播是符合物理规律的(应有的折射、衍射、漫反射、能量衰减等)——此时以上所有案例中的反射都可以用统一的光线追踪方案解决了。

在不使用光线追踪的情况下,影子、室内光照、间接光照等等数不清的渲染课题都要一事一议的用具体的算法来单独制作和优化;在使用光线追踪时就是一套方案一视同仁了——越接近真实物理法则运行,渲染方案的泛用性就越强了,只需要一些Trade Off而不需要什么Trick了。

但是光线追踪和之前传统管线那些替代方案是不太能并存的,所以其实大型游戏开发既要合理使用光追又要对传统管线优化,至少近10年的渲染优化成本都是加倍的。

结语

实时光线追踪是一个不断高速发展的过程,技术细节上我也还在不断学习,这方面我也是落伍的;但是实际上还有大多数硬件是无法支持质量略高的实时光线追踪的,因此前面介绍的那些方案还会广泛并大量存在于3D电子游戏中,一事一议的来做反射可能会是5年内仍然会延续下去的一个开发课题。

下次更新估计是年后,会继续更这个系列。