Wie kann ich feststellen, welche Mipmap-Ebene beim Abtasten einer Textur in einem GLSL-Fragment-Shader verwendet wurde?Zugriff auf automatische Mipmap-Ebene in der GLSL-Fragment-Shader-Textur?
Ich verstehe, dass ich manuell einen bestimmten Mipmapstufe einer Textur mit der textureLod(...)
Methode probieren können:
uniform sampler2D myTexture;
void main()
{
float mipmapLevel = 1;
vec2 textureCoord = vec2(0.5, 0.5);
gl_FragColor = textureLod(myTexture, textureCoord, mipmapLevel);
}
Oder ich könnte die Mipmapstufe erlauben werden ausgewählte texture(...)
wie
uniform sampler2D myTexture;
void main()
{
vec2 textureCoord = vec2(0.5, 0.5);
gl_FragColor = texture(myTexture, textureCoord);
}
mit
Ich ziehe das letztere vor, weil ich dem Urteil des Fahrers über den richtigen Mipmap-Level mehr vertraue als meinem eigenen.
Aber ich würde gerne wissen, welche Mipmap-Ebene in der automatischen Sampling-Prozess verwendet wurde, um mir rational Probe in der Nähe von Pixeln zu helfen. Gibt es einen Weg in GLSL, um auf Informationen darüber zuzugreifen, welche Mipmap-Ebene für ein automatisches Texturmuster verwendet wurde?
Auf welche Version von GLSL zielen Sie? GLSL 4.00 unterstützt ['textureQueryLod (...)'] (https://www.opengl.org/sdk/docs/man/html/textureQueryLod.xhtml), was genau das tut, was Sie wollen. –