Коротка відповідь
Звичайні карти та нормали - це дві різні речі: Нормали - це геометрична властивість будь-якої сітки / поверхні, її використання не є винятковою для затінення та розрахунку освітлення, але насправді має багато інших застосувань, наприклад, у фізиці. Звичайні карти - це текстури, що кодують альтернативні звичайні вектори, що використовуються в комп'ютерній графіці для імітації ударів.
Довга відповідь
Нормальні норми геометрії - це вектор або лінія, яка перпендикулярна даному об'єкту (наприклад, нормальна площина, норма вершини). Нормальні графіки зазвичай використовуються для обчислень світла, наприклад, для обчислення дифузного відбиття по поверхні шляхом взяття крапкового добутку між напрямком світла та нормалами поверхні. Нормали зазвичай розраховуються виходячи з геометричних властивостей сітки (Обличчя / Вершини), беручи поперечний добуток будь-яких двох непаралельних ребер, що лежать на одній площині.
У OpenGL нормалі задаються для вершини (звідси називаються атрибутами вершини), хоча вони можуть бути обчислені лише для кожної грані. У цьому випадку потрібно вказати однакову норму для кожної вершини обличчя. Нормали можна інтерполювати за допомогою OpenGL через кожну вершину грані (трикутника), щоб ви могли обчислити відбите світло на піксель, а не на вершину, отже, даючи більш точний результат.
Нормальне картографування : з іншого боку, це техніка в комп'ютерній графіці, що кодує Нормали в текстурній карті, тому кожна нормальна кодується на тексель. Зазвичай використовується для підробленого освітлення шишок і вм’ятин (наприклад, картографування шишок, картографування паралакса).
Оскільки нормалі обчислюються на основі геометричних властивостей сітки / поверхні, Normal Maps надасть вам альтернативні Нормали, які можуть імітувати шишки, щоб додати деталі до поверхні, не додаючи більше полігонів.
Звичайні карти, як правило, генеруються за допомогою більш детальної 3D-моделі, потім обчислюють нормалі на основі цієї моделі та кодують її у Normal Map.
Навіщо нам потрібно обоє?
Ну, якщо говорити лише про візуалізацію, нормалі та звичайні карти, як правило, використовуються разом для досягнення остаточного ефекту освітлення. Хорошим прикладом може бути шейдер, коли вам потрібна нормальна карта, щоб досягти ефекту яскравого освітлення, і вам все одно знадобиться геометрична нормальна для обчислення того, що називається дотичним простором . Дотичний простір зазвичай використовується для забезпечення повторного використання звичайних карт.
Майте на увазі, що нормальний вважається геометричним атрибутом поверхні і має набагато більше застосувань, ніж лише світлові обчислення. З іншого боку, звичайні карти зазвичай використовуються для поверхневих ефектів.
Розширення відповіді, щоб пояснити, чому важливі дотичні простори:
Коротка відповідь:
дотичні простори використовуються для того, щоб зробити звичайні карти незалежними від основної геометрії.
[EDIT] Додано зображення для відображення нормальної карти в дотичному просторі та нормальної карти у світовому просторі.
Довга відповідь:
На наведеному нижче зображенні показана УФ-площина і нормальна, яка визначає дотичний простір, при формуванні нормальної карти ми вже будемо знати, що використаний простір завжди матиме Нормальне, що вказує в напрямку Z (саме тому звичайні карти виглядають синюшними) , це допоможе нам ігнорувати кривизну поверхні **,.
Дотичний простір дає нам перевагу в тому, що кодування наших звичайних карт не пов'язане з певними нормальними сітками. Припустимо, що ми кодуємо нашу звичайну карту у просторі світу чи об'єктів, тоді кожна нормальна, яку ми кодуємо, матиме напрям, заснований на тому, як змінюються вихідні норми сітки у світовому просторі, не кажучи вже про те, що на вашу звичайну карту впливатимуть перетворення моделі.
На двох вищезгаданих картинах досить зрозуміло, що дотичний дотик робить звичайні карти (праворуч) незалежними від основної геометрії, оскільки всі нормалі закодовані майже в одному напрямку з невеликими варіаціями для імітації ефекту ударів.
** кривизна поверхні визначається величиною, на яку геометричний об’єкт відхиляється від площини чи прямої у випадку лінії, але це визначається по-різному залежно від контексту.