LerpworksAcademy
На этой странице

Графика › Текстуры

Мип-мапы и фильтрация: почему вдали мыло

Нужно знать заранее: UV: как картинка ложится на модель, Шейдер: функция для каждого пикселя, Сглаживание: лесенки, мерцание и TSR, Гамма и sRGB: цвет и данные хранят по-разному

Вдали в один пиксель экрана попадают десятки текселей текстуры, а вблизи один тексель растягивается на десяток пикселей. Здесь ты поймёшь, как видеокарта справляется с обоими случаями: ближайший тексель и билинейная фильтрация, цепочка уменьшенных копий — мип-мапов, выбор копии и анизотропная фильтрация для пола под острым углом. А ещё — что мип-мапы ломают: провода, листву, блики на нормалях и швы атласов. Второй урок раздела «Текстуры».

Зачем это

Фильтрацию и мип-мапы движок включает сам, и о них обычно не думают. Но без этого урока непонятно:

  • почему дальняя часть пола рябит и мерцает, когда камера движется;
  • почему дорога у горизонта размыта, хотя текстура в 4K;
  • почему гладкий кафель вдали искрит, а листва редеет;
  • почему на далёком предмете проступают швы, которых вблизи нет;
  • что значат настройки Filter, Mip Gen Settings, LOD Bias и Aniso Level.

Дальше в статье

  1. Задача: в пиксель попадает много текселей
  2. Вблизи: тексель крупнее пикселя
  3. Мип-мапы: заранее уменьшенные копии
  4. Пол под острым углом: анизотропная фильтрация
  5. Что теряется в мип-мапах
  6. Размер, стриминг и сдвиг
  7. В инструментах
  8. Где ломается
  9. Связи: та же идея в других областях
  10. Главное
  11. Проверь себя