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


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.