Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Подсказки / Решение проблемы разрывов при визуализации ландшафтов с LOD - уровнями

Решение проблемы разрывов при визуализации ландшафтов с LOD - уровнями

Автор:

Простейший способ избежать разрывов ландшафта на границе различных уровней детализации.

Примечание: данный метод можно использовать «для начала», а решать проблему все-таки более правильными методами (доп. треугольники, и т.д.)

Суть сей тривиальной проблемы демонстрируют следующие два изображения.

Крэки на ландшафте (Texture) | Решение проблемы разрывов при визуализации ландшафтов с LOD - уровнями   

Крэки на ландшафте (wireframe) | Решение проблемы разрывов при визуализации ландшафтов с LOD - уровнями

Как видно, на участке с более высокой детализацией тот же фрагмент представлен уже не одним треугольником, а парой — отсюда разрывы в ландшафте или как их еще называют «крэки».

Традиционно для «склеивания» ландшафта предлагают стягивать вершины или производить какие-либо еще дополнительные действия.

Мое решение состоит в усреденении Z-координаты граничных вершин (A1+A2)/2.

Крэки  на ландшафте (метод усредения) | Решение проблемы разрывов при визуализации ландшафтов с LOD - уровнями

Плюсы:
  - не нарушается строение патчей,
  - нет необходимости что-либо переписывать в коде отрисовки/формирования ландшафта.

Минусы:
  - небольшое количество вырожденных вершин,
  - из-за ошибки усреднения на вещественных операциях (A1+A2)/2 иногда появляются пиксельные артефакты — 'мушки', впрочем, проблема эта решается за счет использования вещественных чисел большей точночти или дискретного представления Z-координаты (в целых числах).

12 октября 2009

#LOD, #terrain

Комментарии:

Страницы: 1 2 3 4 ... 8 9 10 Следующая

someoneПостоялецwww13 окт. 200923:16#1
На чём усредняешь? на GPU или на CPU?
evirusПостоялецwww14 окт. 20099:23#2
усреднение Z в пространстве камеры или в системе координат ландшафта?
fanatПостоялецwww14 окт. 20099:23#3
оффтоп: ух-ты! когда ж это было-то??? уже и забыл)) все равно приятно, что приняли наконец-то)

на цпу конечно.
Один раз, при генерации/загрузке патчей

правка: в системе координат ландшафта, разумеется.

innuendoПостоялецwww14 окт. 20099:27#4
fanat
а на резком переходе сравнивал ? скажем, резкий склон ?
fanatПостоялецwww14 окт. 20099:29#5
а в чем проблема? на скринах все отражено.

замечательно работает. ни я один так делал

andrianoПостоялецwww14 окт. 20099:33#6
Ниччего непонятно!
Что такое А1 и А2?
Как введена система координат? (т.е. в какую сторону "торчит" ось Z)

Очевидным решением проблемы представляется корректировать координаты (все, а не только Z) каждой второй вершины подробной сетки (а именно той, напротив которой нет вершины менее подробной сетки) так, чтобы 3 вершины, граничащие с единственным ребром менее подробной сетки, лежали на одной прямой.
В чем недостаток этого очевидного подхода?
Чем предложенное решение отличается от него?
И какие это дает преимущества?

innuendoПостоялецwww14 окт. 20099:34#7
а если стык 4 к 1 ?
OutlawПостоялецwww14 окт. 200910:46#8
ну видимо (A1 + A2) / 4 для первой и (A1 + A2) * 3 / 4 для второй. чего сложного то.
fanatПостоялецwww14 окт. 200911:20#9
иллюстрация к подсказке. (откопал:-)

http://www.gamedev.ru/files/?id=46920

P.S. '0', '9' - переключение режимов текстурирование/сетка

правка: я дико извиняюсь, но там кроме фпс и положения солнца прочая инфо некорректна (я там патчи считал, что ли, не помню)
так что кнопки работают, но инфо не видно( попробую исходник перекомпилить, если надо.


Надо?

boolПостоялецwww14 окт. 200911:26#10
да, было бы интересно посмотреть, и еще там V - спускаться вниз, а есть кнопка вверх? или можно добавить? :) чтобы видеть сверху большую территорию.

да, есть еще артефакты - прозрачные пиксели :) иногда проскакивают.

fanatПостоялецwww14 окт. 200911:36#11
вверх - 'F'

артефакты - да, есть. Минус первый.
Они и в морровинде есть.

Причина - недостаточная точность вещественного представления числа.

правка: сейчас перезалью ...

все свежий билд

иллюстрация к подсказке

и еще правка - добавил описание к файлу ('0','9')

X512Постоялецwww14 окт. 200911:54#12
fanat
> http://www.gamedev.ru/files/?id=46920
Как wireframe отключить?
boolПостоялецwww14 окт. 200911:54#13
X512
'0'
ashujonПостоялецwww14 окт. 200912:08#14
сверху как решето)

Страницы: 1 2 3 4 ... 8 9 10 Следующая

/ Форум / Программирование игр / Графика

Тема в архиве.

Пеленки для новорожденных купить пеленки для новорожденных krohabutik.ru.
2001—2017 © GameDev.ru — Разработка игр