Bevy 中的 UV 坐标

在 Bevy 中,纹理和图片像素的垂直轴,以及在着色器中对纹理进行采样时,都是 下指向 的,即从上到下,原点是在左上角。

这与大多数图像文件格式存储像素数据的方式一致,也与大多数图形 API 的工作方式一致(包括 DirectX、Vulkan、Metal、WebGPU,但 OpenGL 除外 )。

由于与 OpenGL(以及基于它的框架)不同。如果你以前的开发经验是基于 OpenGL,用同样的方式开发 Bevy 游戏时,你可能会发现你的网格上的纹理是垂直翻转的。你必须要以正确的 UV 格式重新导出或重新生成你的网格。

UV 也与 Bevy 中其他地方使用的世界坐标系(Y 轴指向上方)不一致。

如果你的 2D 精灵的图像被翻转了(不管什么原因),你可以用 Bevy 的精灵翻转功能来纠正。

    commands.spawn_bundle(SpriteBundle {
        sprite: Sprite {
            flip_y: true,
            flip_x: false,
            ..Default::default()
        },
        ..Default::default()
    });