Що таке нормальний, дотичний і бінормальний вектори і як вони використовуються?


47

Я хотів би дізнатися таку інформацію:

  • Хто вони?
  • Приклад використання в розробці ігор (область, в якій вони використовуються)

Про такі типи векторів:

  • Normal
  • Tangent
  • Binormal

Було б достатньо простого орієнтованого розробки ігор.


1
Ви задаєте занадто багато питань. Краще, щоб ви просто прочитали, як працюють вектори. З нуля. Також наклейте свою тригонометрію по дорозі.
— Сидар

3
Я подумав, що це може бути багато запитати, але з іншого боку, було б непогано зібрати цю інформацію разом під одним питанням. Це також причина, коли я спеціально попросив простих пояснень.
— Яанус Варус

Відповіді:


43

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

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

Поняття бінормального вектора трохи складніше; в комп'ютерній графіці він, як правило, відноситься до вектора бітангенту ( тут посилання ), який фактично є "іншим" дотичним вектором для поверхні, ортогональним як нормальному вектору, так і вибраному вектору дотичної.Нормальний, дотичний, бітангент

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

З точки зору, де вони трапляються, відповідь ВСЕ . Нормальні вектори використовуються для розміщення камер та об'єктів у тривимірному просторі, для визначення траєкторій, відображень та кутів у фізичних обчисленнях, для зіставлення шкур та текстур у 3D-моделях, для визначення зрушень траєкторії цілей у програмуванні AI, для надання підказів шейдерам про те, як на світлові, тіньові та кольорові точки на поверхні щодо світла, камери та інших предметів тощо. Вони, можливо, є однією з найкорисніших відомостей, що мають у 3D-середовищі, і навіть вони надто зручні в 2D.


2
Чорт я мав би додати фотографію: p
— RobCurr

Дякую за ретельне пояснення! Позначено як відповідь.
— Яанус Варус

2
Це може допомогти прочитати цю статтю про те, чому припущення про квадратний патч є недійсним і чому все, що всі говорять про дотичні та бітангенди, є досить хибним . Він окреслює належну математику, яку слід використовувати, але, на жаль, я недостатньо компетентний, щоб написати правильну відповідь на неї.
— Ларс Віклунд

Бітангентний і бінормальний вектори еквівалентні. Це імена, які приписуються одній і тій же, і це залежить лише від вашої "ментальної точки зору" щодо того, яке ім'я використовувати.
— Нікос

15

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

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

Очевидно, є й інші способи використання цих векторів, і я щойно описав середнє їх використання. Для отримання додаткової технічної інформації я б запропонував вам взяти книгу про комп'ютерну графіку або вивчити деякі статті в Інтернеті. Існує багато інформації про це.


4
+1 - Хоча наступного разу; додати зображення.
— Пітер Геркенс

9

Різниця між дотичною та бінормальною менш очевидна на поверхнях, але це не повинно бути дивно - спочатку бінормальне було визначено не для поверхонь, а для кривих , де концепція має набагато більше сенсу (і де вона насправді живе) як "нормальний", оскільки він ортогональний напрямку руху, таким чином, назва). Якщо бути більш конкретним, враховуючи простірну криву вигляду p = V (t) = (V x (t), V y (t), V z (t)), то тангенс - який вектор вказує на напрямок руху - задається Т у = дп / дт = (Dv х / дт, Йу г / дт, Йу г/ дт). (Я використовую тут індекс для розрізнення "ненормалізованого", оскільки у мене немає мого MathJax.) Тоді (миттєва) швидкість по кривій просто s = | T u |, довжина дотичного вектора, і 'нормалізований' дотичний вектор просто T = T u / s.

Тоді нормальний вектор до кривої є похідною від нормованого дотичного вектора за часом, N u = dT / dt; Причина того, що тут використовується нормалізована дотична, полягає в тому, щоб утримати швидкість уздовж кривої від перекосу нормального вектора - ви можете показати, що з цим визначенням у нас завжди є TN u = 0. Зауважте, що N u не обов'язково є одиничним вектором , будь що більше T u є; насправді його величина k = | N u | - це (миттєва) кривизна кривої в заданій точці, а точка p + N u - центр так званого коливального кола (у заданій точці). При цьому нормалізована норма - просто N = N u/ k, а бітангенс B - поперечний добуток B = TxN; оскільки T і N є одиничними векторами і вони ортогональні один одному, то B також є одиничним вектором, а (T, N, B) є ортогональним кадром.

Зауважимо, що за цим визначенням "бінормальна" крива ближча до того, що ми вважаємо нормальною до поверхні (це нормальна до "локальної" площини кривої), а нормальна до кривої ближче до того, що ми думаємо про те, що є важким для поверхні.

(На жаль, це зображення, насправді, не відповідає справедливості концепції, але це найкраще, що я міг знайти в Інтернеті, і я не можу легко створити свій власний ...)

введіть тут опис зображення

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