Карта освещения из карты высот.
Дана картинка справа, означающая карту высот ландшафта, и полжение солнца.
Нужен алгоритм генерации каринки слева, означающей уровень освещёности.
Помогите пожлуйста.
Тени от ландшафта на ландшафте нужны?
Цитата:
Originally posted by Akela
Тени от ландшафта на ландшафте нужны?
Тени от ландшафта на ландшафте нужны?
Если не будет теней, картинка получится белой. В тенях как раз и смысл. Это ж выходит надо для каждой точки картинки рассчитать формуул прямой, проходящей через солнце, и посмотреть, где она пересечёт ландшафт. А если солнце - не точка, то ещё и полутени делать =)) вот это геморой, йопть.
Но вообще всё сводится к простому нахождению формулы прямой по двум точкам.
Если не будет теней, картинка НЕ ПОЛУЧИТСЯ белой!!! То же диффузное освещение рассчитывается по формуле dot(LightVec, NormalVec). Даже без теней такой расчет даст неравномерное освещение.
По карте высот создать ландшафт в виде сетчатого объекта с количеством узлов по горизонтали и вертикали равным разрешению исходной картинки. Установить ортографическую проекцию для камеры, а саму камеру поместить над ландшафтом, после чего просто отрендерить сей объект, попутно рассчитав его освещение. Можно даже тени сделать.