Оригинал материала: https://3dnews.ru/173206

Глоссарий 3D терминов

Автор: Franchy (ЗоринD)
Antialiasing (антиалиасинг, сглаживание) - устранение пикселизации изображения. Алгоритм заключается в усреднении цветов соседних пикселей готового изображения, однако принципы работы могут отличаться (например выполнение рендеринга в высоком разрешении с последующим его понижением).
Видно, как сглаживается "лесенка", состоящая из пикселей.


Alpha blending (альфа смешение) - создание полупрозрачных объектов. Текстура, наносимая на объект, может содержать помимо информации о цвете (Red,Green,Blue), информацию о прозрачности (Alpha). В зависимосте от величины коэффициента Alpha разные части объекта приобретают различную степень прозрачности. Как правило смешивание цветов перекрываемого объекта и полупрозрачного объекта (с альфа прозрачностью) происходит по следующей формуле: (alpha) * (значение цвета объекта с прозрачностью) + (alpha-1) * (значение цвета покрываемого объекта) при 0<=alpha<=1.


Существует много различных путей использования alpha канала и смешения цветов.

Add transparency (добавляющая прозрачность) - при данном типе смешения значение цвета перекрываемого объекта складывается со значением цвета полупрозрачного объекта: значение цвета A+значение цвета B.
Обратите внимание, что в роли alpha как бы выступает яркость цвета в текстуре.


Multitexturing (мультитекстурирование) - наложение 2-х (или более) текстур на один объект. При этом цвета текселей этих текстур смешиваются по определенному закону: add (сложение), modulate (умножение), substractive (вычитание) и др.


Bump-mapping (рельефное текстурирование) - создание виртуального рельефа на поверхности объекта. Существует много алгоритмов его получения. За основу рельефа обычно берется alpha канал текстуры.


Flat shading (плоское затенение) - каждая грань закрашивается определенным цветом. Для этого строятся вектора нормалей к поверхностям полигонов и определяется цвет (в зависимости от угла между нормалями и направлением на источник света).
Все выглядит граненным.


Gouraud shading (затенение Гуро) - алгоритм. Позволяет получить на поверхности объекта плавное затенение: во всех вершинах объекта строяться вектора нормалей; в зависимости от угла между нормалями и направлением на источник света определяется цвет пикселей (как при flat shading), соответствующих вершинам полигонов; цвета пикселей интерполируются (между вершин) по поверхностям полигонов.
Блики выглядят не реалистично.


Phong shading (затенение Фонга) - один из самых качественных типов затенения. Отличается от gouraud затенения тем, что вектора нормалей строятся для каждой точки изображения (соответственно требует много вычислений).


Specular highlight (блики) - имитация прямого отражения источника света.

При простом наложении текстур могут возникать некоторые дефекты в изображении (глюки :-): когда камера (наблюдатель) близко приближается к объекту то текселы становятся больше, чем пикселы (один тексел заполняет собой несколько пикселов), то проявляется эффект пикселизации (блочности) изображения (см. рис. к point sampling сразу ниже); если текстура находится на большом расстоянии от наблюдателя и текселы становятся меньше пикселов (на один пиксел "претендуют" несколько текселов текстуры - см. рис. к mip-mapping), то проявляется эффект муара (ряби), т.к. в одном и том же пикселе все время рисуются разные тексели. Для устранения первой проблемы используется linear filtering, для ликвидации второй - mip-mapping (включая trilinear filtering) и anisotropic filtering.


Point sampling - самый простой метод фильтрации текстур (ее отсутствие :-). Для определения цвета конечного пикселя используется цвет одного (самого близкого) тексела.

Как видно на рисунке, результатом point sampling является пикселизация (гранулированность) изображения, хотя это самое точное представление исходной текстуры (bitmap'а).


Bilinear (linear) filtering - билинейная фильтрация текстур. Для определения конечного цвета пиксела используются усредненные значения цветов соседних текселей - цвета текселей интерполируются (как правило используются значения 4-х ближних текселей).

Обратите внимание на плавность цветовых переходов в текстуре.


Mip-mapping (mip-текстурирование) - один из способов устранения муара в изображении. MIP означает "многое в одном" (lat. "Multum In Parvum"). Алгоритм использует текстуру с различным разрешением (256x256,128x128,64x64 и т.д.) для разных частей обьекта (в зависимости от расстояния между наблюдателем и поверхностью и от угла под которым находится поверхность).


Побочным эффектом mip-mapping'a является banding - разрывы между mip-уровнями (текстурами с различным разрешением). К тому же теряется резкость текстур.

А это изображение без (!) mip-mapping'a.


Trilinear filtering (трилинейная фильтрация). При этом типе фильтрации фильтруются не только текселы, но и mip-уровни, т.е. сначала вычисляются цвета 2-х пикселей в 2-х (соседних) mip-уровнях, а затем эти два значения смешиваются.

Существуют и другие методы фильтрации при которых используется интерполяция mip-уровней, но только при trilinear filtering фильтруются и mip-уровни (mipmap interpolation) и тексели (bilinear filtering).

Единственный недостаток trilinear filtering - потеря резкости текстур.


Anisotropic filtering (анизотропная фильтрация) - самый совершенный тип фильтрации, когда фильтрация отличается по различным направлениям.

Обратите внимание, что текстура сильнее фильтруется вдаль, нежели по горизонтали (линии остаются тонкими).



Оригинал материала: https://3dnews.ru/173206