欢迎光临散文网 会员登陆 & 注册

快速了解Cone Tracing

2022-11-11 18:43 作者:DeadCyber  | 我要投稿

单根RayTrace最大的问题,就是远处物体采样不足:

对于这些远处物体,实际上一个像素感光器所接收到的像素是所有subRay的集合:

对于这些Subray,既会都来自同一个物体,也会来自前后不同的物体:

图3

基本概念就这么多。

------------------------------------------------------------------------------------------------

跟Ray Tracing一样,实际和理论差了一万个坑。Cone Tracing也是。


我打赌,如果你从未先入为主得看过Ray Tracing的实现,一定会和“主流”实现千差万别。为啥一个像素只发一条?为啥只在乎1bounce?为啥1bounce后面就不半球积分了?(显然数量爆炸了)...... Cone Tracing 也是。


非主流的就不多说了,比如ShaderToy上搜Cone Tracing,场景信息还是SDF,基本是拿来当AA和Motion Blur使的。


主流的是Voxel Cone Tracing,也不是我上面说的多个SubRay,而是每次Step有一个球体,检测球体里的相交信息:

通过面积占比关系可以获得alpha,通过alpha混合可以解决上面说的(单像素不同物体的采样不足)问题:

可以看到混合是很naive的,不过无所谓够用了。


显然求交合计算占比也不容易,所以把场景Voxel化,用八叉树管理。

并且最多就trace 8次,够用了。


因为把场景voxel变成Texture3D,可以把贴图的mipmap用起来,相当于一个天然的LOD。

然后第一次trace用mip7,第二次用mip6...有点类似SDFTrace时候,离得远先Trace一个简单的LOD,可以参考我之前trace地形,就是离得近才计算细节高度:链接


主流的Voxel Cone Tracing就说完了,显然各家会有不同的细节处理,就跟现在的Renderer一样,功能一样,但出图就是各有各味儿。

----------------------------------------------------------------------------------

在Nvidia那叫VXGI,之前和ue4搞过整合,现在没声音了。


跟LPV一样,好是好的,不实用,不然早起飞了。


Two Minute Paper那种降智玩意儿,之前也做过一期。md,天天在那omg,不知道你还以为多牛逼呢,计算量上去了渲染结果能不好看吗?天天放2个图然后开始吹水。

ShaderToy上搜标题正经实现VCT的好像也就2,3个左右,这个可以看看,显然问题还是有很多的。Ray Tracing是做不到这种这么快,又无噪声的实时自发光场景的。可惜由于要把整个场景放GPU里,所以场景只能很简单了:


快速了解Cone Tracing的评论 (共 条)

分享到微博请遵守国家法律