Чому дотичні простори звичайних карт не повністю сині?


11

Чому звичайні карти не просто сині? Я думаю, що нормальні карти мають бути переважно синього кольору, оскільки Z компонент нормального представлений синім кольором. Нормали вказують на поверхню в напрямку Z, тому ми повинні бачити синій колір як основний колір, оскільки домінуючий компонент Z.

За визначенням дотичний простір перпендикулярний поверхні. У будь-якій точці у нас повинно бути нормальне, що завжди вказує на Z (синій напрямок) без X (червоний напрямок) або Y (зелений напрямок). Таким чином, нормальна карта (оскільки це "нормальна карта") повинна мати колір нормалей, який є просто синім (R = x = 0, G = y = 0, B = z = 1), не маючи відтінків між ними.

Але нормальні карти не такі, і в них є градієнти відтінків. Чому це так?

Відповіді:


19

Дотичний простір перпендикулярний геометричним нормалам - інтерпольованим вершинним нормалам багатокутників. Нормальна карта забезпечує нормалі затінення , відносно дотичного простору, визначеного геометричними нормалами. Якщо нормали затінення не такі, як геометричні - тобто, якщо ви маєте детальну текстуру поверхні з особливостями, які не моделюються в геометрії - нормальна карта відхиляється від "плоско-синього" (RGB 128, 128, 255).

У цьому і полягає вся суть звичайних карт - саме вони отримують детальну дрібну форму поверхні, яку можна представити освітленням і затіненням, хоча ви не змоделювали всі ті крихітні деталі з багатокутниками.


1
Для розробки звичайні карти, як правило, робляться в дотичному просторі, оскільки вони залишаються точними, коли сітка анімована, тоді як, наприклад, звичайні карти в просторі моделей вимагають, щоб звичайні карти були анімовані в тандемі з будь-якою анімацією, яка може бути у вас (що було б особливо складно з скелетів і довільних регдолів, наприклад). Для статичної геометрії немає жодних технічних причин, щоб у вас не було просторового модельного простору, не блакитної карти, спрощуючи піксельний шейдер так незначно (за рахунок послідовності, вимагаючи більше шейдерів, а в свою чергу, потрібно більше шейдерів зміни вибору).
MaulingMonkey

1
(також звичайні дані карти, як правило, не можуть бути використані в декількох місцях на сітці, якщо в просторі моделі)
MaulingMonkey

+1; остаточний пункт є ключовим для питання - якби поверхня, на якій вони були, повинна бути повністю рівною, вони були б синіми. Якщо поверхня повинна була мати деяку шорсткість, то звичайні моделі карти мають шорсткість, не вимагаючи вказувати додаткову геометрію.
Максим Мінімус

2

Проста відповідь - це через зміщення діапазону.

Нормали мають діапазон від -1,0 до 1,0 для кожного компонента (x, y, z). Звичайна карта, що зберігається як 24-бітове RGB-зображення, з іншого боку, має діапазон від 0 до 255 для кожного компонента.

Це означає, що будь-які компоненти, які дорівнювали нулю, ставали 127,5 (точна середина) у звичайній карті (яка доходить до 128).

Нормальний вектор (0,0,1) стає (128,128,255) у зображенні звичайної карти, яке є пурпурним кольором, а не чисто синім (0,0255).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.