我一直在想如何将两种渲染方法结合起来,使光栅化的屏幕形状充当片段着色器中基于射线行军渲染的画布。
举这些美丽的例子:https://www.shadertoy.com/view/XsjXRm 或 https://www.shadertoy.com/view/MtXSzS 它们的可见部分可以粗略地表示为球体。现在我想做的是把两个球体放到世界上的某个地方,然后运行常规的光栅化通道。光栅化将产生模型占用的像素,对于这些像素,我想实际运行着色器射线行进算法以获得所需的外观(我的两个球体在上面的例子中看起来像着色器玩具"球体"(。
这是可行的吗?
附言我对光栅化和矩阵/空间变换非常了解,但我对光线行进的工作原理有非常模糊的理解。请原谅我的无知。
这绝对是可能的。
这个想法是使用相同的相机进行光线追踪和光栅化。 您可以从片段着色器中的相机矩阵获取相机的位置,也可以通过从相机位置减去片段位置并将其归一化来获取相机的方向。
这样,光线只会从相机投射到可见的碎片上。