-
Нормаль - перпендикуляр к поверхности. Бинормаль в математике, как удалось нагуглить, - это перпендикуляр к нормали и к касательной к кривой. Но в 3D-графике ведь не кривая, а поверхность. И куда должна быть направлена касательная, когда речь идёт о поверхности - не совсем понятно. И разве касательная не должна быть перпендикулярна нормали? А если должна, то в чём смысл бинормалей? Зачем они? Может ли кто-нибудь просветить?
-
Чиатйте книжки. Учите матчасть. В графике мы работаем с треугольниками. А они как раз и задают плоскость. бинормаль нужна для того чтобы однозначно определить пространство треугольника. локальные координаты. это используется, например, для расчета бампа или паралакса.
-
> @!!ex © (17.09.10 18:42) [1] > Чиатйте книжки.
Давайте ссылки на них - посмотрим.
> В графике мы работаем с треугольниками. А они как раз и > задают плоскость. > бинормаль нужна для того чтобы однозначно определить пространство > треугольника. локальные координаты.
Для задания плоскости треугольника используются координаты его вершин.
Фраза "однозначно определить пространство" - это общие слова. Похоже, что вы сами не знаете что такое бинормаль и tangent, как они рассчитываются и как по ним рассчитывается бамп.
-
Ясно. Удачи.
-
> @!!ex © (17.09.10 21:00) [3] > > Ясно. Удачи.
Удачи вам. А слив вам засчитан.
-
> Удачи вам. А слив вам засчитан.
Гыгы =) Зная, кто есть Алекс, такого точно не скажешь. ЗЫ. Но, @!!ex, ИМХО тема бинормалей всё-таки требует более детального пояснения: http://netlib.narod.ru/library/book0077/images/f10_06.jpgВот картинка, думаю она прояснит ситуацию. Векторы касательных к создаваемой поверхности (когда мы, фактически, ту кривую, про которую Вы, Шейдер, говорили, аппроксимируем с помощью ломаной), а также нормали к ней, обязаны быть ортогональны нашей бинормали, оставаясь ортогональными и друг другу. Т.е., что самое главное, бинормаль ≠ нормаль.
-
Ах да. На картинке: ⋅ T — касательная ⋅ N — нормаль ⋅ B — бинормаль
-
> [5] 0x00FF00 © (18.09.10 03:16) > Но, @!!ex, ИМХО тема бинормалей всё-таки требует более детального > пояснения
Естественно, я и собирался ответить более детально, после уточнения что не понятно в моем описании. Отвечать школоте с завышенным ЧСВ, которая на меня наезжает... Нет уж, извольте. :)
-
> 0x00FF00 © (18.09.10 03:16) [5]
То, что они взаимоперпендикулярны - понятно. То, что бинормаль рассчитывается как перпендикуляр к нормали и касательной - тоже.
Не понятно почему касательная на картинке направлена именно вправо? Её ведь можно провернуть вокруг вектора нормали в любую сторону и её перпендикулярность к нормали при этом не нарушится. Почему вправо то?
Второй вопрос - это зачем вообще нужно рассчитывать третий вектор (бинормаль)? Почему нельзя обходиться только нормалью и касательной?
-
Только что сказали > То, что бинормаль рассчитывается как перпендикуляр к нормали > и касательной - тоже.
и сразу же > Её ведь можно провернуть вокруг вектора нормали в любую > сторону и её перпендикулярность к нормали при этом не нарушится >
Вы осмыслите первую фразу, тогда вопроса не будет.
-
> CrytoGen (20.09.10 06:17) [9] > > Только что сказали > > То, что бинормаль рассчитывается как перпендикуляр к нормали > > и касательной - тоже. > > и сразу же > > Её ведь можно провернуть вокруг вектора нормали в любую > > сторону и её перпендикулярность к нормали при этом не > нарушится > > > > Вы осмыслите первую фразу, тогда вопроса не будет.
Прежде чем предлагать другим осмысливать, сами сперва осмыслите.
-
интересный монолог получается
-
> [11] CrytoGen (20.09.10 09:44)
Вот поэтому начиная со второго поста я не пытаюс ничего объяснять. :) Не тот "клиент".
-
Вернее не наш. ;)
-
Клиент-то да, но... почему-то никто из Мастеров Геймдева не сказал, что tangent/binormal, применительно к практической задаче ParallaxMapping, задают положение не треугольника, а текстуры в пространстве. Точнее, направление U и V координат... хотя нет, они всегда направлены вверх-вправо... в общем, пара векторов, которая определяет, как нужно сместиться в плоскости полигона, чтобы получить вместо текселя с координатами [U, V] -> [U+N, V] и [U, V+N] (это требуется для ParallaxMapping). А поскольку текстура может накладываться "непрямоугольно", вектора не обязательно будут ортогональны, поэтому их нужно вместе с нормалью 3 штуки. Во всяком случае, я так понял отсюда: http://www.gamedev.ru/code/terms/TangentSpacehttp://www.gamedev.ru/code/terms/ParallaxMapping
-
> [14] Sapersky (21.09.10 00:37) > задают положение не треугольника, а текстуры в пространстве.
не текстуры, а локальную систему координат они задают. с помощью которой вычисляется локальные координаты источника света - перевод из глобальных координат в систему координат треугольника. Если систему координат в двух соседних треугольниках не буду согласнованы, то будет косяк с расчетом освещения. Поэтому тангент спейс согласовывают. как? с помощью текстурных координат. ведь текстурные координаты согласованы, значит их можно использовать. что и делают.
задача тангент спейса одна: перевод координат источника света из глобальной системы координат в систему координат треугольника.
-
не текстуры, а локальную систему координат они задают. с помощью которой вычисляется локальные координаты источника света
А эти локальные координаты применимы к чему-то без текстуры? По-моему без текстуры можно посчитать максимум освещение Фонга, но для него вроде достаточно одной нормали. Хотя допускаю, что есть ещё какие-то методы, а я просто не в курсе.
-
Расчет эффектов всевозможных(сгорание треугольника, например). Много всякой фигни можно придумать, которая требует расчет в согласованной системе локальных координат. Конкретно в случае паралаксов всякие согласование делают по развертве, потому что с разверткой потом и работать. Да и проше это
|