Конференция "Игры" » Что такое бинормаль в 3D-графике?
 
  • Шейдер (17.09.10 17:41) [0]
    Нормаль - перпендикуляр к поверхности. Бинормаль в математике, как удалось нагуглить, - это перпендикуляр к нормали и к касательной к кривой. Но в 3D-графике ведь не кривая, а поверхность. И куда должна быть направлена касательная, когда речь идёт о поверхности - не совсем понятно. И разве касательная не должна быть перпендикулярна нормали? А если должна, то в чём смысл бинормалей? Зачем они? Может ли кто-нибудь просветить?
  • @!!ex © (17.09.10 18:42) [1]
    Чиатйте книжки. Учите матчасть.
    В графике мы работаем с треугольниками. А они как раз и задают плоскость.
    бинормаль нужна для того чтобы однозначно определить пространство треугольника. локальные координаты.
    это используется, например, для расчета бампа или паралакса.
  • Шейдер (17.09.10 19:42) [2]

    > @!!ex ©   (17.09.10 18:42) [1]
    > Чиатйте книжки.


    Давайте ссылки на них - посмотрим.


    > В графике мы работаем с треугольниками. А они как раз и
    > задают плоскость.
    > бинормаль нужна для того чтобы однозначно определить пространство
    > треугольника. локальные координаты.


    Для задания плоскости треугольника используются координаты его вершин.

    Фраза "однозначно определить пространство" - это общие слова. Похоже, что вы сами не знаете что такое бинормаль и tangent, как они рассчитываются и как по ним рассчитывается бамп.
  • @!!ex © (17.09.10 21:00) [3]
    Ясно. Удачи.
  • Шейдер (17.09.10 23:43) [4]

    > @!!ex ©   (17.09.10 21:00) [3]
    >
    > Ясно. Удачи.


    Удачи вам. А слив вам засчитан.
  • 0x00FF00 © (18.09.10 03:16) [5]

    > Удачи вам. А слив вам засчитан.

    Гыгы =)
    Зная, кто есть Алекс, такого точно не скажешь.

    ЗЫ.
    Но, @!!ex, ИМХО тема бинормалей всё-таки требует более детального пояснения:
    http://netlib.narod.ru/library/book0077/images/f10_06.jpg
    Вот картинка, думаю она прояснит ситуацию.
    Векторы касательных к создаваемой поверхности (когда мы, фактически, ту кривую, про которую Вы, Шейдер, говорили, аппроксимируем с помощью ломаной), а также нормали к ней, обязаны быть ортогональны нашей бинормали, оставаясь ортогональными и друг другу.

    Т.е., что самое главное, бинормаль ≠ нормаль.
  • 0x00FF00 © (18.09.10 03:18) [6]
    Ах да. На картинке:
    ⋅ T — касательная
    ⋅ N — нормаль
    ⋅ B — бинормаль
  • @!!ex © (18.09.10 09:10) [7]
    > [5] 0x00FF00 ©   (18.09.10 03:16)
    > Но, @!!ex, ИМХО тема бинормалей всё-таки требует более детального
    > пояснения

    Естественно, я и собирался ответить более детально, после уточнения что не понятно в моем описании.
    Отвечать школоте с завышенным ЧСВ, которая на меня наезжает... Нет уж, извольте. :)
  • Шейдер (19.09.10 21:48) [8]

    > 0x00FF00 ©   (18.09.10 03:16) [5]


    То, что они взаимоперпендикулярны - понятно. То, что бинормаль рассчитывается как перпендикуляр к нормали и касательной - тоже.

    Не понятно почему касательная на картинке направлена именно вправо? Её ведь можно провернуть вокруг вектора нормали в любую сторону и её перпендикулярность к нормали при этом не нарушится. Почему вправо то?

    Второй вопрос - это зачем вообще нужно рассчитывать третий вектор (бинормаль)? Почему нельзя обходиться только нормалью и касательной?
  • CrytoGen (20.09.10 06:17) [9]
    Только что сказали
    > То, что бинормаль рассчитывается как перпендикуляр к нормали
    > и касательной - тоже.

    и сразу же
    > Её ведь можно провернуть вокруг вектора нормали в любую
    > сторону и её перпендикулярность к нормали при этом не нарушится
    >

    Вы осмыслите первую фразу, тогда вопроса не будет.
  • Шейдер (20.09.10 08:13) [10]

    > CrytoGen   (20.09.10 06:17) [9]
    >
    > Только что сказали
    > > То, что бинормаль рассчитывается как перпендикуляр к нормали
    > > и касательной - тоже.
    >
    > и сразу же
    > > Её ведь можно провернуть вокруг вектора нормали в любую
    > > сторону и её перпендикулярность к нормали при этом не
    > нарушится
    > >
    >
    > Вы осмыслите первую фразу, тогда вопроса не будет.


    Прежде чем предлагать другим осмысливать, сами сперва осмыслите.
  • CrytoGen (20.09.10 09:44) [11]
    интересный монолог получается
  • @!!ex © (20.09.10 13:34) [12]
    > [11] CrytoGen   (20.09.10 09:44)

    Вот поэтому начиная со второго поста я не пытаюс ничего объяснять. :)
    Не тот "клиент".
  • @!!ex © (20.09.10 13:34) [13]
    Вернее не наш. ;)
  • Sapersky (21.09.10 00:37) [14]
    Клиент-то да, но... почему-то никто из Мастеров Геймдева не сказал, что tangent/binormal, применительно к практической задаче ParallaxMapping, задают положение не треугольника, а текстуры в пространстве. Точнее, направление U и V координат... хотя нет, они всегда направлены вверх-вправо... в общем, пара векторов, которая определяет, как нужно сместиться в плоскости полигона, чтобы получить вместо текселя с координатами [U, V] -> [U+N, V] и [U, V+N] (это требуется для ParallaxMapping). А поскольку текстура может накладываться "непрямоугольно", вектора не обязательно будут ортогональны, поэтому их нужно вместе с нормалью 3 штуки.
    Во всяком случае, я так понял отсюда:
    http://www.gamedev.ru/code/terms/TangentSpace
    http://www.gamedev.ru/code/terms/ParallaxMapping
  • @!!ex © (21.09.10 14:33) [15]
    > [14] Sapersky   (21.09.10 00:37)
    > задают положение не треугольника, а текстуры в пространстве.

    не текстуры, а локальную систему координат они задают. с помощью которой вычисляется локальные координаты источника света - перевод из глобальных координат в систему координат треугольника.
    Если систему координат в двух соседних треугольниках не буду согласнованы, то будет косяк с расчетом освещения.
    Поэтому тангент спейс согласовывают. как? с помощью текстурных координат. ведь текстурные координаты согласованы, значит их можно использовать. что и делают.

    задача тангент спейса одна: перевод координат источника света из глобальной системы координат в систему координат треугольника.
  • Sapersky (22.09.10 13:28) [16]
    не текстуры, а локальную систему координат они задают. с помощью которой вычисляется локальные координаты источника света

    А эти локальные координаты применимы к чему-то без текстуры?
    По-моему без текстуры можно посчитать максимум освещение Фонга, но для него вроде достаточно одной нормали. Хотя допускаю, что есть ещё какие-то методы, а я просто не в курсе.
  • @!!ex © (22.09.10 15:26) [17]
    Расчет эффектов всевозможных(сгорание треугольника, например).
    Много всякой фигни можно придумать, которая требует расчет в согласованной системе локальных координат.
    Конкретно в случае паралаксов всякие согласование делают по развертве, потому что с разверткой потом и работать. Да и проше это
 
Конференция "Игры" » Что такое бинормаль в 3D-графике?
Есть новые Нет новых   [134427   +38][b:0][p:0.001]