Как правильно использовать сэмплер lod_options (MSL) в шейдере Metal? - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь изучить MSL с помощью Спецификации языка затенения металла и увидел, что вы можете установить параметры LOD при выборке текстуры, указав параметры в функции sample. Это один из примеров, приведенных в статье c:

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

lod_options, включая смещение, уровень, градиент2d и т. Д. c.

Я просмотрел все, но не могу найти синтаксис использования для этого. Это именованные аргументы? lod_options это структура? Например, если я хочу указать уровень LOD, как правильно это сделать? Я знаю, что эти параметры также могут быть указаны в самом объекте сэмплера, но если я хочу сделать это здесь, какой синтаксис будет правильным для этого?

1 Ответ

0 голосов
/ 13 марта 2020

Нет типа lod_options как такового; Вы можете думать об этом как о заполнителе для одного из bias, level, gradient2d, et c. типы. Каждый из этих типов является отдельной структурой, которая позволяет стандартной библиотеке Metal иметь перегруженный вариант функции sample для каждой такой опции.

Чтобы указать, например, уровень mipmap для выборки, вы предоставить параметр типа level:

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