【发布时间】:2021-11-02 00:29:01
【问题描述】:
我正在使用 godot。我的 3d 游戏支持 4 个摄像机角度,我想根据我所观察的角度在网格上使用不同的纹理。
这样做的原因是我通过将 2d 绘图投影到 3d 对象上来创建 2d 的错觉,并且我需要为每个角度使用不同的手绘投影。
也许我可以看看 CAMERA_MATRIX?我不确定当我旋转相机时它会如何变化......
【问题讨论】:
我正在使用 godot。我的 3d 游戏支持 4 个摄像机角度,我想根据我所观察的角度在网格上使用不同的纹理。
这样做的原因是我通过将 2d 绘图投影到 3d 对象上来创建 2d 的错觉,并且我需要为每个角度使用不同的手绘投影。
也许我可以看看 CAMERA_MATRIX?我不确定当我旋转相机时它会如何变化......
【问题讨论】:
我认为您正在寻找NORMAL 函数。
NORMAL 函数为您提供相对于相机的表面法线,这正是我认为您需要的。
示例:
shader_type spatial;
uniform sampler2D colorGrad;
void fragment()
{
ALBEDO = texture(colorGrad, vec2(NORMAL.x , 0)).rgb;
}
【讨论】:
render_mode world_vertex_coords; 以确保 NORMAL 因相机位置而异。