【问题标题】:What is the correct usage of sampler lod_options (MSL) in Metal shader?金属着色器中采样器 lod_options (MSL) 的正确用法是什么?
【发布时间】:2020-06-25 00:51:50
【问题描述】:

我正在尝试通过Metal Shading Language Specification 学习MSL,并看到您可以在对纹理进行采样时通过在sample 函数中指定选项来设置LOD 选项。这是规范中给出的示例之一:

Tv sample(sampler s, float2 coord, lod_options options, int2 offset = int2(0)) const

lod_options包括bias、level、gradient2d等

我已经翻遍了,但找不到它的用法语法。这些是命名参数吗? lod_options 是一个结构吗?例如,如果我想指定 LOD 级别,那么正确的做法是什么?我知道这些选项也可以在采样器对象本身中指定,但是如果我想在这里执行,那么正确的语法是什么?

【问题讨论】:

    标签: ios metal metalkit


    【解决方案1】:

    没有lod_options 这样的类型;您可以将其视为biaslevelgradient2d 等类型之一的占位符。这些类型中的每一种都是不同的结构,这允许 Metal 标准库为每个此类选项具有 sample 函数的重载变体。

    例如,要指定要采样的 mipmap 级别,您需要提供 level 类型的参数:

    float4 color = myTexture.sample(mySampler, coords, level(1));
    

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 2015-09-05
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多