Sascha Willems のテクスチャ チュートリアルを使用していますが、問題なく動作します。次に、テクスチャを 2D テクスチャから符号なし 16 ビットの 3D テクスチャに変更します。
正しい深さを設定してから、これらの値を変更します。
VK_FORMAT_BC3_UNORM_BLOCK -> VK_FORMAT_R16_UINT
VK_IMAGE_TYPE_2D -> VK_IMAGE_TYPE_3D
and just one component -> view.components = { VK_COMPONENT_SWIZZLE_R };
シェーダーで:
sampler2D -> sampler3D
しかし、 texture(volumeTexture, textPos).r から取得した値はすべてゼロになりました。私がやりたいことは、UINT16 画像をアップロードすることですが、フラグメント シェーダーから float としてサンプリングします。
RenderDoc を開くと、テクスチャがきれいに見えます。
pastie.org/private/i7dqw7pm0snkbf40eyywg
これは私がopenglで行ったことです:
const auto& glType = GL_SHORT;
const auto& glFormat = GL_LUMINANCE;
const auto& glInternalFormat = GL_LUMINANCE16F_ARB;
const auto& glClampMode = GL_CLAMP_TO_EDGE;