Как следует из названия, я хочу читать и записывать в определенный пиксель определенного уровня MIP в вычислительном шейдере. На стороне Vulkan я знаю, что могу указать, сколько уровней mip я хочу адресовать в ImageView, но я не уверен, как это работает в glsl. Могу ли я использовать один image3D с одним ImageView:
layout(binding = 0, rgb8) uniform image3D img;
или мне нужен один image2D для каждого уровня MIP и, следовательно, несколько ImageViews?
layout(binding = 0, rgb8) uniform image2d mipLvl0;
layout(binding = 1, rgb8) uniform image2d mipLvl1;
layout(binding = 2, rgb8) uniform image2d mipLvl2;
Поскольку оба imageLoad / Store имеют перегрузку, принимающую ivec3
, я предполагаю, что в первом случае я могу указать уровень mip как координату z.