我一直在阅读关于GLSL着色器中光线行进的各种文章(例如这篇文章:http://www.iquilezles.org/www/articles/rmshadows/rmshadows.htm),这引发了我想要问的一些问题。
在我的应用程序中,我正在渲染一个带有几个网格的场景,并想尝试阴影。虽然我似乎有点理解光线行进的概念,但我不太明白如何在GLSL中正确实现它。我知道如何计算射线和平面的交点,但这该如何通过GLSL着色器处理?
根据这里的线程:(https://gamedev.stackexchange.com/questions/67719/how-do-raymarch-shaders-work),它提到您正在测量光线起点和“表面”之间的距离。他所指的表面是指网格吗?我需要将组成网格的平面/点数组发送到着色器中以计算射线相交测试吗?我需要使用深度缓冲区来确定表面的距离吗?
在我的应用程序中,我正在渲染一个带有几个网格的场景,并想尝试阴影。虽然我似乎有点理解光线行进的概念,但我不太明白如何在GLSL中正确实现它。我知道如何计算射线和平面的交点,但这该如何通过GLSL着色器处理?
根据这里的线程:(https://gamedev.stackexchange.com/questions/67719/how-do-raymarch-shaders-work),它提到您正在测量光线起点和“表面”之间的距离。他所指的表面是指网格吗?我需要将组成网格的平面/点数组发送到着色器中以计算射线相交测试吗?我需要使用深度缓冲区来确定表面的距离吗?