Я хочу рисовать текст с помощью OpenGL с использованием FreeType и, чтобы сделать его более четким, я генерирую текстуру шрифта из FreeType для каждой итерации mipmap. Все работает довольно хорошо, за исключением одной вещи. Когда я делаю это:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
OpenGL выбирает ближайшее mipmap в соответствии с размером текста, но если доступны размеры 16 и 32, а я хочу 22, он выбирает 16, что делает его ужасным. Есть ли способ установить его так, чтобы он всегда выбирал ближайший более крупный mipmap?
Я знаю, что могу сделать это при рендеринге текста, чтобы вручную установить уровень mipmap:
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, (int) log2(1/scale));
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, (int) log2(1/scale));
Но так ли это эффективно? Разве это не избавляет от необходимости использовать мипмапы полностью? Я мог бы просто сделать разные текстуры и выбрать одну по размеру. Так есть ли лучший способ сделать это?