_NetSurfer_
> В книге всё это объясняется достаточно подробно. Но выглядит так, будто ты её не читал.
С амазона не заказать с РФ, а в виде Pdf еще не утекло)
> sampler2D как раз такой конструктор, поэтому вокруг него как раз и надо добавлять nonuniformEXT.
Проверил, работают оба варианта.
Второй вариант это:
texture( sampler2D( kTextures2D[nonuniform(texId)], kSamplers[nonuniform(sampId)] ))
/A\
Иди в авторы. Получай %.
Второй вариант это:
texture( sampler2D( kTextures2D[nonuniform(texId)], kSamplers[nonuniform(sampId)] ))
Это неправильный вариант. Правильный выше. Можно сравнить с Хроносовским:
https://github.com/KhronosGroup/Vulkan-Samples/blob/eca122602a5d7… uads.frag#L68
// It is very common in the wild to see code like:
// - sampler2D(Textures[nonuniformEXT(in_texture_index)], ...)
// This looks very similar to HLSL, but it is somewhat wrong.
// Generally, it will work on drivers, but it is not technically correct.