【问题标题】:Corrupted resized textures with Metal on Retina screens在 Retina 屏幕上使用 Metal 损坏调整大小的纹理
【发布时间】:2019-10-29 10:31:14
【问题描述】:

我想在 METAL 视图中绘制一系列纹理以呈现完整的图像。在常规屏幕上,图像以精确的 1:1 比例呈现(意味着 100x100 像素的纹理将呈现在 100x100 像素的正方形中)

在 Retina 显示器上绘制它实际上会给我一个 200x200 的正方形。

现在,可能有两种不同的方法:

1) 将整个图像生成为 100x100 正方形,然后让 Metal View 将其放大到 200x200 正方形 - 它可以工作。

2) 放大每个纹理并直接将图像生成为 200x200 正方形。为什么要采取这种方法?因为有些纹理(如文本)是动态生成的,并且可以以更好的分辨率生成。如果你采取第一种方法,那是不可能的。

不幸的是,在这种方法中,每个纹理周围都可以看到一些丑陋的正方形。 我尝试使用尺寸、夹具选项等,但找不到任何解决方案。 任何帮助将不胜感激!

来自常规屏幕的图像

来自视网膜屏幕的图像

【问题讨论】:

    标签: macos metal retina-display


    【解决方案1】:

    找到了解决办法。在 Fragment shader 中,纹理采样器被定义为:

    constexpr sampler s = sampler(coord::normalized, address::repeat, filter::nearest);
    

    代替:

    constexpr sampler s = sampler(coord::normalized, address::clamp_to_edge, filter::nearest);
    

    【讨论】:

      猜你喜欢
      • 2014-04-29
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多