首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求与无限平面相交的射线的长度

求与无限平面相交的射线的长度
EN

Stack Overflow用户
提问于 2021-01-04 22:44:04
回答 1查看 110关注 0票数 1

我试图使用后处理着色器创造水体。水位为y=0,边界下的任何物体都会受到阴影的影响。我将投出光线从相机的位置在阴影和取回距离从地面的每一条射线。然后,我将使用这些信息来计算你看到多少水,为了计算surface.The问题的颜色,我不知道如何检测和计算光线在与y= 0相交之前所走的距离。有没有办法让我达到这个效果。

失败代码

代码语言:javascript
复制
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;
}

一个类似的成功的项目,但在一个领域。

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 23:07:46

基于这个答案特莉安

代码语言:javascript
复制
float rayGroundIntersect(float3 rayOrigin, float3 rayDir) {
    float denom = dot(float3(0,1,0), rayDir);
    if (abs(denom) > 0.0001f)
    {
        // negate normal instead of rayOrigin
        float t = dot(rayOrigin, float3(0,-1,0)) / denom; 
        return t >= 0 ? t : maxFloat;
    }
    return maxFloat;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65570846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档