Сглаживание террейна

Рейтинг: 1Ответов: 0Опубликовано: 20.11.2014

Возникла такая задача: нужно сгладить полигоны террейна, так как после преобразования из карты высот (jpg с 8 бит на каждый канал) получился террейн со "ступеньками".
Подскажите из собственного опыта алгоритм/статьи по этому делу.
Основное то, что нужно сглаживать только по одной координатной оси.

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

А вот другое: в тех местах, где резкое изменение координат должно остаться, сглаживается тоже, я конечно понимаю, что это противоречит поставленной задаче, но как это осуществить, пока без понятия. ((

Как вариант, конечно, можно повысить битность карты высот и уже там решать, где должно быть глаже, а где резкое изменение, но тогда следующая проблема: как получить значения высоты из jpg, если он содержит каналы не по 8 бит, а больше!

В данный момент эта процедура получения высоты осуществлена следующим образом:
Image() преобразовываю в canvas и из этого полотна получаю пиксели, а, как известно, canvas имеет каналы по 8 бит.

Ответы

Ответов пока нет.