Выбор уровня OpenGL ES2.0 Mipmap, трилинейная фильтрация и точность

Вопрос: Как вы рассчитываете, каким должен быть результат трилинейной фильтрации?

Я работаю над тем, чтобы заставить работать видеодрайвер, и сталкиваюсь с проблемой, когда я не прохожу тест, который рассматривает уровни mipmap. Создается текстура 32x32, и уровни mipmap заполняются вручную, как показано ниже.

texsize_____mip lvl_____R____G_____B

32__________0________ff____00____00

16__________1________00____ff____00

8___________2________00____00____ff

4___________3________ff_____ff____00

2___________4________ff_____00____ff

1___________5________00_____ff____ff

Теперь я передаю мой тест при использовании GL_NEAREST_MIPMAP_NEAREST/GL_LINEAR_MIPMAP_NEAREST, но когда я использую GL_NEAREST_MIPMAP_LINEAR/GL_LINEAR_MIPMAP_LINEAR (что из того, что я могу собрать как фильтрование использования трилинейного) я не тест, который сравнивает свои результаты с ожидаемым из данных выше +/- 8 плюса дополнительная небольшая ошибка. Когда я рисую, я рисую, используя размер текстуры 32/16/8/4/2/1, я получаю

texsize_____mip lvl_____R____G_____B

32__________0________ff____00____00

16__________1________01____fe____00

8___________2________00____00____ff

4___________3________f9_____f9____06

2___________4________ff_____0c____f3

1___________5________00_____ff____ff

Я терплю неудачу на размер 2 текса, так как ошибка +/- 12. Также кажется, что я могу пропустить что-нибудь, так как я ожидаю, что все уровни не пройдут или ни один из уровней не выйдет, у любого есть понимание если это нормально для разных уровней фильтроваться по-разному?

Мой вопрос состоит в том, что результаты и входные данные выше, что можно ожидать от результатов? Из того, что я понимаю, если я выберу размер текстуры, который соответствует данному уровню, он должен интерполироваться между этим уровнем (самым низким) и уровнем над ним (самым высоким). Есть ли в игре вес, который мне не хватает?

0 ответов

Другие вопросы по тегам