понедельник, 27 февраля 2012 г.


Доброго дня всем!
Сегодня я, как и обещал, расскажу о такой вещи как DuDv map. Немного погуглив я понял, что информации на этот счет почти нет, хотя сами по себе эти карты используются повсеместно. В чём же проблема?
Да, собственно, ни в чем. Единственной проблемой этих карт является изготовление. И эти карты не получили такого распостранения как карты нормалей или карты высот. Однако, получить их можно из карты нормалей, которую в свою очередь можно получить из карты высот. И, разумеется, её можно нарисовать самому. Как мы и поступили в игре blast-off:
 Что это такое и с чем это едят? Карта  смещений (dudv это сокращение от deltaU deltaV, тоесть дельта текстурных координат) представляет собой правила, по которым пиксель будет смещен. Каждой точке на финальном изображении будет сопоставлено значение из карты смещений, тем самым мы будем знать откуда брать результирующий цвет для этой точки.
Например оливковый цвет (0.5 красного и 0.5 зеленого) говорит нам о том, что точка берется ровно из того же места, где она и есть (без смещений координат). 
Вообще суть и вычисления крайне похожи на карту нормалей. В зеленой составляющей лежит значение от 0 до 1.0, 0.5 при этом является отсуствием искажений, 0.0 - полное искажение в минус по Y оси, 1.0, соотвественно, полное искажение в плюс. Насколько оно большое, разумеется, Решаете вы. В красной составляющей цвета лежит абсолютно тоже самое, только для горизонтальной составляющей. 
Таким образом R искажет U, а G искажет V.
На приведенной сверху текстуре карта строилась так, чтобы все пиксели внутри видимого шарика (его видно на текстуре как разноцветное пятно) брались из окружающей шарик текстуры. Этим мы добились как бы отражений на шарике. Хотя, в большинстве случаев эти карты используются совсем для иной цели, а именно для создания карт преломлений, скажем от стекла, воды, искажений пространства от взрывов.

9 комментариев:

  1. Я знал!
    Я тут подумал, получается если сделать искажения для дыма собственно как дым - с полупрозрачностью, то можно смешивать карты искажений?

    ОтветитьУдалить
  2. Ну примерно так и делают :)

    ОтветитьУдалить
  3. "Единственной проблемой этих карт является изготовление. " Как-же плагин для фотошопа от NVidia?

    ОтветитьУдалить
  4. А что плагин? Изготовь карту, как я привел выше, для отражающего шарика :)
    Вообще проблема наглядно демонстрируется тем, что по запросу dudv map гугл не выдает почти ничегошеньки.

    ОтветитьУдалить
  5. Как-бы проще простого, уже сделал) Там из карты высот можно сразу сделать DU/DV т.е ставим на черном фоне белое пятно в центре размытое. И жмём кнопку получить DU/DV =). На самом деле ещё нужно галочки в менюке потыкать нужные и залить синий канал черным цветом заместо серого.

    ОтветитьУдалить
  6. Убедил, не факт, правда, что там получилось то, что надо :) Ну да ладно.

    ОтветитьУдалить
  7. Есть небольшая разница. Нормали в таком случае будут показывать куда сдвигать текущую точку, а карты искажений должны показывать откуда была сдвинута эта точка.
    Но так как все равно на глаз делается, разница малозаметна и по рисунку нормали и карты сдвигов все равно очень похожи будут

    ОтветитьУдалить
  8. Mefistofel, так ультилита и генерирует DuDv, причем тут нормал мапы?

    ОтветитьУдалить
  9. Может не обратил внимание, думал только для нормалов

    ОтветитьУдалить