我试图使用后处理着色器创造水体。水位为y=0,边界下的任何物体都会受到阴影的影响。我将投出光线从相机的位置在阴影和取回距离从地面的每一条射线。然后,我将使用这些信息来计算你看到多少水,为了计算surface.The问题的颜色,我不知道如何检测和计算光线在与y= 0相交之前所走的距离。有没有办法让我达到这个效果。
失败代码
float rayGroundIntersect(float3 rayOrigin, float3 rayDir) {
if (rayDir.y <= 0) {
return maxFloat;
}
float a = rayOrigin.y / rayDir.y;
float l = length(rayDir.xz * a);
return l;
}一个类似的成功的项目,但在一个领域。
发布于 2021-01-04 23:07:46
https://stackoverflow.com/questions/65570846
复制相似问题