本帖最后由 去玩儿剖 于 2020-5-8 11:41 编辑
如果要说2019最火的光影是什么,那非PTGI莫属,毕竟人家使用了最新的实时光线追踪技术。但这也带来了一系列问题:假冒的光追层出不穷,光追又到底是什么东西?所以,本帖就是专门为大家科普、辟谣的。下面我们将围绕四个核心问题去讨论:什么是光线追踪?什么是伪光追?如何分辨假冒光追?“路径追踪”和“光线追踪”的区别又是什么?下面我将以一张图解释国内“光线追踪”的乱象:

本帖有写得不好的地方还请各位大佬提出、指正
下面我们正式开始:首先,什么是光线追踪呢?简单来说,就是一束光线从光源发出,投射到另一个物体上,再被反射出去,射到另一个物体上,继续反射.......直到光线被完全吸收或投射到我们的眼睛里(当然,这只是光线追踪在现实世界中的运作方式,而在计算机中的运作方式是与现实截然不同的,这个我们不作讨论,有兴趣的可以自行百度),这张图就很好地说明了光线追踪是什么:
当然,大家在浏览有关光追的视频、文章时经常会看到这样一个词:伪光追。但当我们打开浏览器,准备百度时,却被网上的说法搞得一头雾水,反而更混乱了。因为,这个说法在计算机图形学上是来没有过的,这只是民间(大部分都是不懂光追的人)只是对某种光追的渲染方式的称呼而已,也不存在什么半真半假的光追,要么是光追,要么就不是:比如,在Java版光影界,使用光栅化于光追混合渲染的方式被称为混合引擎,也就是我们常说的伪光追(如SEUS PTGI),而只使用光追引擎的就叫真光追(如Continuum RT),但这两个在计算机图形学上都是真正的光追。
有时,我们还会听到一个说法:某某光追光影是软光追,这个说法比上一个更玄,这里我就以自己的理解给大家解释一下:软光追就是指使用软件方式实现的光线追踪如PTGI、Continuum RT、MollyVX(这个光追光影比较冷门,后面会讲到),反之,硬光追就是指使用硬件技术来实现的光追,比如基岩版官方光线追踪。
但是,现在,网络上也出现了被冠以光追称号的非光追光影,让我们看看这几个经典例子:
不好意思我还真不信

真......真棒

既不低配也不光追


兄弟,这两个貌似都不是吧
P.S.:这个光影是一个魔改的BSL光影(名为BSL_Edit_Pasquale,有时也被冠以“光线追踪 RTX ON”之类的名字),相较于原光影,这个东西只增加了一个体积光特效(体积光在Java界几乎是个光影都有(如Sildurs、Continuum、KUDA),看起来就像一条光柱,但该特效与体积光没有任何关系),这个光影也十分好辨别,首先,这个光影的体积光完全是瞎调的,看起来就像北京雾霾一样,甚至当你的视角和体积光同一角度时,你还能十分不科学地看到违和感极强的光柱。而且,如果你用压缩软件打开该光影,你就会看到一个readme.txt文档,里面大概就是这样:

还有一些严重搞错的:

怕不是Renewed

这年头,连材质包也有光追了(该材质包仅仅是有一个PBR和法线技术而已,与光追没有半点关系)
甚至,连mcbbs上都能有人搞错



不点名批评某mcbbs材质版版主@LittleHei (手动滑稽)这里再次不厌其烦的说明一下:体积光在Java界几乎是个光影都有(如Sildurs、Continuum、KUDA,PTGI,Chocapic13,Wisdom),看起来就像一条光柱,但体积光与光线追踪是两个截然不同的概念,与光线追踪没有任何关系。
同时,基岩版那边又怎么能少的了一片喧嚣呢?让我们看看吧:


不得不说,基岩版光影作者忽悠人的水平是越来越高了,就一个体积光也能吹成光追?这两个东西能扯得上关系?RT是可以随便叫的吗?把我们观众当傻子?,这里借用火龙大佬的一段话形容一下基岩版光影界现状:
思路就是分离天空光照和方块光照
天空光照的ao去模糊拉精度删过渡
方块光照从天空光照独立出来不算ao
天空贴图用渐变代码过渡
物理天空是什么不存在
太阳用代码画一个球确保精度
法线贴图优先方块光照运算,然后代入天空运算
反射部分显示预先设置好贴在摄像机上的贴图
反射度越高显示越多
pbr是什么不知道
法线配合是什么也不知道
tonemap色彩映射不存在
调色使劲往黄就对了
光线跟踪就是让光照明暗差
P.S.:AO,即环境光遮蔽
P.S.S.:基岩版光影作者真是够不要脸的,明明自己的光影简陋得不得了,却还要冠以“RT”“光线追踪”等称号,你也不看看Java版,人家光影比基岩版好多了,又有谁虚假宣传把自己的光影冠以“光线追踪的称号?(甚至连上文出现的BSL_Edit_Pasquale是光线追踪也只是某UP主胡扯的)真是应了那句老话:“半瓶水叮咚响”
最后,我们讲一讲光线追踪与路径追踪的区别,简单来讲,就是:
光线追踪(Ray Tracing):这其实是个框架,而不是个方法。符合这个框架的都叫raytracing。这个框架就是从视点发射ray,与物体相交就根据规则反射、折射或吸收。遇到光源或者走太远就停住。一般来说运算量不小。
路径追踪(Path Tracing):是raytracing + 蒙特卡洛法,是光线追踪的一种实现方法。在相交后会选一个随机方向继续跟踪,并根据BRDF计算颜色。运算量也不小。
转载自tieba.baidu.com/p/6662327464(我授权我自己转载2333)
参考资料:zhuanlan.zhihu.com/p/29418992
The End
欢迎大家补充
如果要说2019最火的光影是什么,那非PTGI莫属,毕竟人家使用了最新的实时光线追踪技术。但这也带来了一系列问题:假冒的光追层出不穷,光追又到底是什么东西?所以,本帖就是专门为大家科普、辟谣的。下面我们将围绕四个核心问题去讨论:什么是光线追踪?什么是伪光追?如何分辨假冒光追?“路径追踪”和“光线追踪”的区别又是什么?下面我将以一张图解释国内“光线追踪”的乱象:

本帖有写得不好的地方还请各位大佬提出、指正
下面我们正式开始:首先,什么是光线追踪呢?简单来说,就是一束光线从光源发出,投射到另一个物体上,再被反射出去,射到另一个物体上,继续反射.......直到光线被完全吸收或投射到我们的眼睛里(当然,这只是光线追踪在现实世界中的运作方式,而在计算机中的运作方式是与现实截然不同的,这个我们不作讨论,有兴趣的可以自行百度),这张图就很好地说明了光线追踪是什么:

当然,大家在浏览有关光追的视频、文章时经常会看到这样一个词:伪光追。但当我们打开浏览器,准备百度时,却被网上的说法搞得一头雾水,反而更混乱了。因为,这个说法在计算机图形学上是来没有过的,这只是民间(大部分都是不懂光追的人)只是对某种光追的渲染方式的称呼而已,也不存在什么半真半假的光追,要么是光追,要么就不是:比如,在Java版光影界,使用光栅化于光追混合渲染的方式被称为混合引擎,也就是我们常说的伪光追(如SEUS PTGI),而只使用光追引擎的就叫真光追(如Continuum RT),但这两个在计算机图形学上都是真正的光追。
有时,我们还会听到一个说法:某某光追光影是软光追,这个说法比上一个更玄,这里我就以自己的理解给大家解释一下:软光追就是指使用软件方式实现的光线追踪如PTGI、Continuum RT、MollyVX(这个光追光影比较冷门,后面会讲到),反之,硬光追就是指使用硬件技术来实现的光追,比如基岩版官方光线追踪。
但是,现在,网络上也出现了被冠以光追称号的非光追光影,让我们看看这几个经典例子:

不好意思我还真不信

真......真棒

既不低配也不光追


兄弟,这两个貌似都不是吧
P.S.:这个光影是一个魔改的BSL光影(名为BSL_Edit_Pasquale,有时也被冠以“光线追踪 RTX ON”之类的名字),相较于原光影,这个东西只增加了一个体积光特效(体积光在Java界几乎是个光影都有(如Sildurs、Continuum、KUDA),看起来就像一条光柱,但该特效与体积光没有任何关系),这个光影也十分好辨别,首先,这个光影的体积光完全是瞎调的,看起来就像北京雾霾一样,甚至当你的视角和体积光同一角度时,你还能十分不科学地看到违和感极强的光柱。而且,如果你用压缩软件打开该光影,你就会看到一个readme.txt文档,里面大概就是这样:

还有一些严重搞错的:

怕不是Renewed

这年头,连材质包也有光追了(该材质包仅仅是有一个PBR和法线技术而已,与光追没有半点关系)
甚至,连mcbbs上都能有人搞错



不点名批评某mcbbs材质版版主@LittleHei (手动滑稽)这里再次不厌其烦的说明一下:体积光在Java界几乎是个光影都有(如Sildurs、Continuum、KUDA,PTGI,Chocapic13,Wisdom),看起来就像一条光柱,但体积光与光线追踪是两个截然不同的概念,与光线追踪没有任何关系。
同时,基岩版那边又怎么能少的了一片喧嚣呢?让我们看看吧:


不得不说,基岩版光影作者忽悠人的水平是越来越高了,就一个体积光也能吹成光追?这两个东西能扯得上关系?RT是可以随便叫的吗?把我们观众当傻子?,这里借用火龙大佬的一段话形容一下基岩版光影界现状:
思路就是分离天空光照和方块光照
天空光照的ao去模糊拉精度删过渡
方块光照从天空光照独立出来不算ao
天空贴图用渐变代码过渡
物理天空是什么不存在
太阳用代码画一个球确保精度
法线贴图优先方块光照运算,然后代入天空运算
反射部分显示预先设置好贴在摄像机上的贴图
反射度越高显示越多
pbr是什么不知道
法线配合是什么也不知道
tonemap色彩映射不存在
调色使劲往黄就对了
光线跟踪就是让光照明暗差
P.S.:AO,即环境光遮蔽
P.S.S.:基岩版光影作者真是够不要脸的,明明自己的光影简陋得不得了,却还要冠以“RT”“光线追踪”等称号,你也不看看Java版,人家光影比基岩版好多了,又有谁虚假宣传把自己的光影冠以“光线追踪的称号?(甚至连上文出现的BSL_Edit_Pasquale是光线追踪也只是某UP主胡扯的)真是应了那句老话:“半瓶水叮咚响”
最后,我们讲一讲光线追踪与路径追踪的区别,简单来讲,就是:
光线追踪(Ray Tracing):这其实是个框架,而不是个方法。符合这个框架的都叫raytracing。这个框架就是从视点发射ray,与物体相交就根据规则反射、折射或吸收。遇到光源或者走太远就停住。一般来说运算量不小。
路径追踪(Path Tracing):是raytracing + 蒙特卡洛法,是光线追踪的一种实现方法。在相交后会选一个随机方向继续跟踪,并根据BRDF计算颜色。运算量也不小。
转载自tieba.baidu.com/p/6662327464(我授权我自己转载2333)
参考资料:zhuanlan.zhihu.com/p/29418992
The End
本帖最后由 LittleHei 于 2020-5-8 17:31 编辑
审核过程看到这篇文章,瞧到了@我的情况,大概意思是说我误解了吧?那哪能呢,体积光和光追自然不是一个概念,文章内也明确指出了,我也就不再赘述,这里主要说下Sildur's Shaders的情况。
在Sildur's Shaders的搬运解释中,我给出的是“光追田园大众光影”,为什么我没直接写“光追田园光影”,特意加上大众二字?目的就是起到限制作用,我想给用户对Sildur的理解是“大众也能用得起的田园风光追效果光影”而非“田园风光追光影”,这两者是有本质不同的,在搬运帖内也对VL做出了明确的名词解释(光追后缀也是为了提示效果展示技术,并未直接将VL定义为“光追”)。并不是人人都有能在真正支撑光追同时流畅游玩的硬件,而Sildur则能在尽可能降低硬件要求的同时给普罗大众近似于光追效果的体验。
也许有人会理解为:“你这是命名欺诈!这本来就不是光追,你咋就写个光追上去,不害臊啊?”如有这种想法,那也请先体验一下光影本身再说。大部分用户对光追的认知仅停留在“光动,视变”的基础之上,而Sildur本身利用一系列视觉技术已经可以基本做到这点,实际体验一下就可知了,并且优化不说多了,在帖主所列举的光影里,不排老一,也得老二,视觉体验也是极为优秀的,各大手机的“青春版”也正是以此理念命名的——在以尽可能低的价格上(类同桌面硬件成本),达成近似旗舰的体验(类同光追视觉效果),而非旗舰(类同光追)。
虽然光追的所有特性是不可能通过这种手段完全复制的,但仅论“光动,视变”,在较低的配置要求下,Sildur绝对能以更出色的视觉体验和游戏帧数拔得“光追田园大众光影”的称谓
审核过程看到这篇文章,瞧到了@我的情况,大概意思是说我误解了吧?那哪能呢,体积光和光追自然不是一个概念,文章内也明确指出了,我也就不再赘述,这里主要说下Sildur's Shaders的情况。
在Sildur's Shaders的搬运解释中,我给出的是“光追田园大众光影”,为什么我没直接写“光追田园光影”,特意加上大众二字?目的就是起到限制作用,我想给用户对Sildur的理解是“大众也能用得起的田园风光追效果光影”而非“田园风光追光影”,这两者是有本质不同的,在搬运帖内也对VL做出了明确的名词解释(光追后缀也是为了提示效果展示技术,并未直接将VL定义为“光追”)。并不是人人都有能在真正支撑光追同时流畅游玩的硬件,而Sildur则能在尽可能降低硬件要求的同时给普罗大众近似于光追效果的体验。
也许有人会理解为:“你这是命名欺诈!这本来就不是光追,你咋就写个光追上去,不害臊啊?”如有这种想法,那也请先体验一下光影本身再说。大部分用户对光追的认知仅停留在“光动,视变”的基础之上,而Sildur本身利用一系列视觉技术已经可以基本做到这点,实际体验一下就可知了,并且优化不说多了,在帖主所列举的光影里,不排老一,也得老二,视觉体验也是极为优秀的,各大手机的“青春版”也正是以此理念命名的——在以尽可能低的价格上(类同桌面硬件成本),达成近似旗舰的体验(类同光追视觉效果),而非旗舰(类同光追)。
虽然光追的所有特性是不可能通过这种手段完全复制的,但仅论“光动,视变”,在较低的配置要求下,Sildur绝对能以更出色的视觉体验和游戏帧数拔得“光追田园大众光影”的称谓
LittleHei 发表于 2020-5-8 17:23
审核过程看到这篇文章,瞧到了@我的情况,大概意思是说我误解了吧?那哪能呢,体积光和光追自然不是一个概 ...
怎么说呢,感觉这样误导还是不太好,或许可以把光追换成别的称谓。
不过光追不局限于PTGI或者Continuum RT之类的通过路径追踪实现的光照效果,还有的非路径追踪光影有光线追踪的屏幕空间折射/反射。如果拥有这些特性的话,说是光追也未尝不可,只不过MC光影吧那边比较认同的“光追”标准是路径追踪光照就是了