Ich bin mit den Textur-Tutorial von Sascha Willems und es funktioniert ohne Probleme. Dann ändere ich die Textur von einer 2D-Textur zu einer 3D-Textur ohne Vorzeichen 16 Bit.Sampling-Wert in Fragment-Shader aus einer R16_UINT-3D-Textur in Vulkan
stelle ich die richtige Tiefe und dann diese Werte ändern:
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 };
Im Shader:
sampler2D -> sampler3D
Aber alle Werte, die ich bekommen von Textur (volumeTexture, textpos) .r jetzt sind Null. Ich möchte ein UINT16-Bild hochladen, aber es als float aus dem Fragment-Shader probieren.
Wenn ich RenderDoc öffnen die Textur sieht gut aus.
pastie.org/private/i7dqw7pm0snkbf40eyywg
Dies ist, was ich in opengl tat:
const auto& glType = GL_SHORT;
const auto& glFormat = GL_LUMINANCE;
const auto& glInternalFormat = GL_LUMINANCE16F_ARB;
const auto& glClampMode = GL_CLAMP_TO_EDGE;
Was meinst du mit „es als Schwimmer probieren?“ Als was * art * float? 16-Bit IEEE-754 schwimmt? 16-Bit vorzeichenloser normierter Fixpunkt? –