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

推荐订阅源

S
Securelist
V
V2EX
MongoDB | Blog
MongoDB | Blog
量子位
J
Java Code Geeks
GbyAI
GbyAI
Attack and Defense Labs
Attack and Defense Labs
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cloudbric
Cloudbric
Recorded Future
Recorded Future
月光博客
月光博客
Help Net Security
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
The Register - Security
The Register - Security
Scott Helme
Scott Helme
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
G
Google Developers Blog
T
Troy Hunt's Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
I
InfoQ
S
SegmentFault 最新的问题
G
GRAHAM CLULEY
C
Check Point Blog
Project Zero
Project Zero
有赞技术团队
有赞技术团队
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
P
Privacy International News Feed
AI
AI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Full Disclosure
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Hacker News: Front Page
S
Secure Thoughts
罗磊的独立博客
T
Threat Research - Cisco Blogs
aimingoo的专栏
aimingoo的专栏
博客园_首页
宝玉的分享
宝玉的分享
C
Cybersecurity and Infrastructure Security Agency CISA

机核

游戏性能旗舰最强之选,一加 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-03-15 · via 机核

前言

实时渲染中的“实时(Realtime)”,指的是满足每帧能完成画面渲染任务,更多是一个性能指标概念,和是否真实没直接关系。由于传统渲染管线总归是用一系列技术来近似真实世界的光照,所以如果出了Bug或全局光照设置不得当,就会出现标题画面中的脸黑问题。

如果把物体表面直接着色称为“直接光照”,与之对应的就是“间接光照”,两者可以合称全局光照。狭义的来划分可以认为光线从光源直接照到物体表面并反射到摄像机的是直接光照,而弹射大于一次的光传播效果都是间接光照。

次表面或一定体积的光照可以认为介于两者之间,因为一定程度上已经需要模拟光线弹射几次的结果了。

虽然概念上看着都是几个字,但如果物体表面光照的实现难度好比温顺的小猫,次表面、体积光照的实现难度可能像是华南虎——而间接光照的实现就像是克苏鲁里的古神一样,只提几个概念就能产生大脑过载的感觉。

这篇文章可以认为是放在“游戏中还原真实世界”的这个系列中,只是标题太长写不下了。

大部分人包括我自己都还是宁可全局光照是一个黑盒,偶尔打开看一眼也要匆忙的关上,使其退化为引擎中不起眼的几个选项和小按钮。尽管如此,非光追渲染管线中能做到的全局光照特性还是不多,所以这次我会反着介绍——即先从光线追踪的全局光照开始谈起(先把大脑干超载了,把课题提出来,再逐步回收)。

(图中对比了只有直接光照和计算了一次弹射的全局光照的效果,后者会显得明亮很多,因为计算中损失的能量更少)

1 基于光线追踪的全局光照

一般认为光线追踪(Ray Tracing)是一整套现代光传播模式的渲染策略的集合,这里面大部分还是只能在离线渲染中使用。其基本思想其实已经反复提到了,但是实际技术方案中由于算力和采样精度问题还是有一些优化点。

较好实现的光追可以覆盖全局光照中的几乎所有课题,因为已经尽可能模拟了物理世界中的光传播——虽然精度可能永远只能无限趋近。

1)光线追踪—— Ray tracing [1979]

与后来的现代光线追踪不同,最初的方案也被称为Whitted style ray tracing

(图中展示了1980年这一方案实现的折射和反射效果)

其基本策略仍是以射线的方式来计算,而不是以能量的方式来考虑衰减和光传播。这一方案认为光线在光滑表面会弹射,在漫反射表面会停止弹射;由于在光滑表面弹射的原因,可以实现光滑表面的反射效果。

2)路径追踪—— Path tracing [1986]

基于辐射度量学(Radiometry)的思想,计算过程考虑能量在微表面的传播与衰减。基于光路的可逆性,追踪的既可能是光路也可能是摄像机视线。

基础思想是从摄像机发射出射线,并基于蒙特卡洛积分方法(Monte Carlo integration)进行采样——简单的说就是把积分问题转化为离散采样问题,采样策略和精度决定了结果的近似程度。

使用这种方法时,视线在每个物体表面还是只弹射出一次(这里与实际物理世界不完全一致),直到与光源连接或达到一定弹射次数。

这也是光线追踪模式中的光源需要有体积的主要原因。

(图中是Wiki中Path Tracing实现的效果)

基于优化视线命中光源的效率问题,后续又提出了双向路径追踪(Bidirectional Path Tracing)等方案。

3)其它更现代的光传播计算策略

这里列举一下,每个概念都不展开了。例如:光子映射(Photon mapping)、梅特波利斯光照传输(Metropolis light transport ),基本都是在光线追踪的基础上进行改进和特化。

(图中展示了光子映射用来解决酒杯的焦散渲染问题)

*从最早提出时间看,其实在离线渲染领域这些技术方案早就有了,只是迟迟无法应用到实时渲染领域。

2 实时渲染管线的全局光照技术概述

传统渲染管线的全局光照,主要是基于预运算和屏幕空间的,后期还有一些基于3D空间体素化的方案(体素化后面的节会提到)。

由于是对物理世界的归纳和近似,对于物理世界中的一个特性都往往需要多种技术组合实现。

1)整体颜色问题——环境光、烘焙光照贴图

传统的环境光指按一定策略为范围内的物体统一叠加某种颜色,可以动态调整(室内、室外切换之类)。烘焙则顾名思义不可动态变化。

(图中展示了Unity中的烘焙光照贴图)

2)明暗问题——包括实时阴影、烘焙阴影、实时AO、烘焙AO(关于AO下一节会谈到)等

阴影和环境光遮蔽(AO)更多的是人为划分,因为传统管线里无法为所有物体都计算所有光源的实时光照明暗。

可以简单认为直接光照未能照亮的部分称为阴影(包含软阴影自阴影问题),这部分主要是通过阴影贴图(ShadowMap)的一系列技术来实现。对于多光源的阴影还引入了反射阴影贴图(RSV——Reflective Shadow Mapping)技术,这里不展开了。

间接光照渲染时,环境中中较暗的部分则被称为AO。实际实现中往往通过不同物体表面连接处的接近闭合程度来近似计算。

3)反射问题——主要思路是实时反射(摄像机或Ray Marching)和从预渲染图中反射(之前一篇讲镜面反射的文章中写了很多)

4)间接光照问题——在非光追管线中想实时的来模拟光线弹射后照到物体的效果,主要包含屏幕空间和3D空间这两大方向

5)其它辅助效果——每项都是对物理世界中一类效果的还原,属于对光照系统的补充。例如镜头光晕(Lens flare)效果、雾效果、水体焦散(Caustics)、体积光照(典型的如丁达尔效应 The Tyndall effect )等。

3 环境光遮蔽概述

环境光遮蔽(AO—— Ambient Occlusion)在美术上也被称为闭合阴影。基本设想是物体表面越接近越封闭的部分受光越少,因此可以基于物体之间的接近和封闭程度来推算间接光照的明暗。

(图中是Large Scale Ambient Occlusion的中间件效果展示,第二行是开启了AO的效果。右边的屋内也是一类典型的间接光照场景)

看图基本能理解为什么需要AO。这里介绍两类实时AO的方案:

1)屏幕空间AO(SSAO——Screen Space Ambient Occlusion)

SSAO指运用帧缓冲中的有效数据进行AO推算的一类技术,其主要计算依据是缓冲区中的深度法线贴图。结合这两者,通过一些采样策略来近似估计得到某个着色点的AO值。

(Wiki中SSAO的传统流程,对于一些极限值是需要引入偏移量来修正的)

后续还迭代出了改进版本的HBAO( Horizon-Based AO),这里不展开了。

2)体积AO(AO Volume)

其基本思想是为动态计算AO的物体预计算其各方向的遮挡采样情况,存储为一个空间贴图(Volume Texture)。其中的指可以预览为空间中环绕物体的很多锥体,包含——方向、位置、锥立体角度几个信息维度。

渲染时,空间中的任何一个接近物体AO计算范围的着色点,都可以带入这个预存储数据计算,得到一个近似的AO值。当然实际应用中还需要调一些魔鬼数字的函数偏移量(Bias),毕竟这是一个trick。

(图中展示了这一方案预存储数据的预览效果)

(图中显示了这一方案添加了Bias后的实时渲染效果)

这个方案可以解决的典型的一类问题就是人物爬墙过程的实时AO计算(这里指的不是阴影,而是间接光照产生的AO)。

4 球谐函数及其应用

球谐光照是一种基于球谐函数(Spherical Harmonics, SH)的着色算法,它用于模拟低频的环境光照明。实时渲染中通常使用低阶球谐函数来编码存储光照信息,这些函数可以查询球面上不同方向(位置)的光照颜色值。

实际执行时先对复杂光源进行预采样,把结果保存到一些球谐光采样器中,在实时渲染时就可以通过着色点在空间中的位置带入函数得到颜色值——多个采样点之间可以通过权重和插值之类方式混合。

采样为球谐光照数据的过程可以视为进行了一次有损压缩,但优势是实际要存的值相对很少(RGB共27个系数)。

这个方案对于低频信号近似效果较好;而反射光高光属于高频,无法被涵盖在这个方案中。

在我比较熟悉的Unity中,就有光探针(Ligth Probe)方案:

(图中的动态物体在运行时可以依据光探针组改变其表面的光照着色)

5 体素及其应用

体素(Voxel)是实时渲染中一种常用的中间结构,是一种把空间中物体颜色插值归纳成“大颗粒”的立方体——体素,便于做实时近似采样的技术。体素准确的说是一种颜色查找结构,只是预览时会表现为大的立方体。对于静态场景,相关的体素查找结构都是可以预计算的。

(图中的颜色方块就是体素的预览效果)

这里列举2种在利用体素思想在3D空间中实现全局光照的方案:

1)光传播体积(LPV ——Light Propagation Volutions)

核心思路就是将空间网格(体素)化,把计算过直接光照的表面作为一次弹射起点,然后发出射线在击中的体素上采样计算,作为间接光照的结果。

由于存储和查找时是需要通过球谐函数(SH),所以速度相对快;但这个方案只能处理好漫反射表面的间接光照,并由于其精度的损失会带来漏光问题。

(图中的间接光照部分采用的就是LPV方案)

2)体素全局光照(VXGI—— Voxel Global Illumination)

与前者不同是这套方案是把几何物体网格(体素)化。预计算时将网格体素离散化为树状结构并存储光照计算相关信息,在渲染时通过锥体追踪(Cone Tracing)来计算光照 。

由于有了多层树状结构和锥体追踪,因此用更多存储空间和性能消耗换来了相对更高的精度。这2个方案的对照也可以近似理解为一层纹理和多层Mipmap之间的关系(虽然有一些查找策略等细节完全不同)。

(图中展示了这一方案通过2个Pass实现预运算和查找的思路)

相关的更学术化的讲解都可以从Games202系列课中找到,这里只是粗略的介绍了这套方法的概念联系。

结语

本文粗浅地介绍了一下全局光照,可以看出这个概念是由一堆不断迭代的技术方案来组成的。即便游戏有很高的渲染精度,也用上了虚幻引擎,并不意味着这种需要一事一议的全局光照就能一劳永逸的快速搞定了。引擎的好效果只是其上限,至于如何发挥出上限还需要积累漫长的优化和美化经验。

很多全局光照技术如果需要用在风格化渲染(如卡通渲染)中,都需要定制化的进行改进;而且光线追踪也不是风格化渲染的通解。

另外还是一个老生常谈的问题,就是即使在几年后的次时代主机上,只用光追管线的时代还远远无法到来。类似《堕落之主》《奇唤士》这类画风偏写实的准3A游戏,还是必须打开全局光照这个愁人的潘多拉魔盒。

最后是一些资料链接: