【问题标题】:How to determine camera angle in shader?如何确定着色器中的摄像机角度?
【发布时间】:2021-11-02 00:29:01
【问题描述】:

我正在使用 godot。我的 3d 游戏支持 4 个摄像机角度,我想根据我所观察的角度在网格上使用不同的纹理。

这样做的原因是我通过将 2d 绘图投影到 3d 对象上来创建 2d 的错觉,并且我需要为每个角度使用不同的手绘投影。

也许我可以看看 CAMERA_MATRIX?我不确定当我旋转相机时它会如何变化......

【问题讨论】:

    标签: shader godot


    【解决方案1】:

    我认为您正在寻找NORMAL 函数。

    NORMAL 函数为您提供相对于相机的表面法线,这正是我认为您需要的。

    示例:

    shader_type spatial;
    
    uniform sampler2D colorGrad;
    
    void fragment()
    {
        ALBEDO = texture(colorGrad, vec2(NORMAL.x , 0)).rgb;
    }
    

    【讨论】:

    • 我认为这样的方法可能可行,但您可能还需要:render_mode world_vertex_coords; 以确保 NORMAL 因相机位置而异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2018-08-25
    相关资源
    最近更新 更多