Войти
ПрограммированиеФорумГрафика

Terrain (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
9:35, 19 дек. 2017

Outlaw,

Каким образом связываются вертексы в примитивы на границах уровней детализации ? 

По-факту имеем один гигантский вертексный буфер - константа в котором на максимальной детализации размещены координаты XZ вертексов  поверхности и высота Y  Понятно, что можно взять и объединить в примитивы разные вертексы с помощью IB, и получим разные по размерам примитивы. И всё это относительно позиции камеры. Ближе к камере - максимальная детализация, тесселяция ландшафта, а дальше от камеры объединяются в примитывы вертексы на большем расстоянии друг от друга. Причём, на границах детализации всё это нужно связать нарисовать без разрыва. Но как расчитывается какие именно вертексы нужно связать в примитивы в IB на границах детализации ?  Вряд ли IB формируюется на CPU.  Как это реализовано на GPU ?  Я и прошу объяснений или наглядный пример реализации.

Всё бъётся на кластеры / куски / секторы и рисуется кусками с отсечением лишнего ?  Хорошо. Да и когда камера движется приходится рисовать куски кусков.  Но как связываются разрывы кластеров / кусков ?


#16
9:47, 19 дек. 2017

bykabak
>Каким образом связываются вертексы в примитивы на границах уровней детализации ?
Вертексы связываются соответсвующим IB. IB может быть разными, зависимости от взаимного расположения узлов(патчей, кусков, листьев quadtree) относительно друг от друга. При определении уровня LOD, смотрятся уровни соседних LOD и принимается решени о выборе соответсвующего IB.
> Вряд ли IB формируюется на CPU
Именно на нем, где же еще, 1 раз при загрузке ландшафта.
Outlaw
Все верно написал.

#17
10:04, 19 дек. 2017

Andrey,

Outlaw,
и несколько константных индексных которые связывают разные уровни детализации (LOD).

Как именно связываются данные из этих разных IB в один при плавном перемещении камеры ?

Andrey,

Вот твоя реализация, где всё скачет и меняется ландшафт : видео

Вот реализация в UE4, где всё плавно и похоже используется тесселяция : видео

Хотелось бы разобраться с качественным методом реализации.

#18
10:06, 19 дек. 2017

Andrey
> При определении уровня LOD, смотрятся уровни соседних LOD и принимается решени
> о выборе соответсвующего IB.

Оно сильно надо? Будешь до пенсии гордиться ? За сколько дипов рисуются самые дальние лоды всех патчей ?

#19
10:07, 19 дек. 2017

bykabak
> Хотелось бы разобраться с качественным методом реализации.

Ты для начала сделай простую с рывками при переключении лодов

#20
10:10, 19 дек. 2017

innuendo,
Я представляю как это делается. Вопрос только в реализации расчётов индексов для объединения в примитивы на границах детализации. По-моему,- это  некачественный метод. На видео всё видно. Зачем тратить время на то, что не принесёт удовольствия по окончании работы ? ( риторический )

#21
10:56, 19 дек. 2017

bykabak
> По-моему,- это некачественный метод.

он был в FarCry/Crysis

> Зачем тратить время на то, что не принесёт удовольствия по окончании работы ?

человек делал пять лет, прикинь какое удовольствие у него было :)

#22
11:39, 19 дек. 2017

Я сообразил как реализованно в UE4.  Попробую сделать...

#23
12:07, 19 дек. 2017

Не стоит смотреть на UE, там сделано не лучшим образом.
Есть более оптимальные решения, например как в витчере https://ia801204.us.archive.org/9/items/GDC2014Gollent/GDC2014-Gollent.pdf

#24
12:15, 19 дек. 2017

FireFenix,
Благодарю. Изучаю...

#25
13:14, 19 дек. 2017

bykabak
> Как именно связываются данные из этих разных IB в один при плавном перемещении
> камеры ?
Набор IB формируется заранее, для всех варинатов стыковки лодов(кусков, патчей) разной детализации друг с другом. В завимиости от положения камеры у 2 соседних лодов может быть разная детализация, вот тут выбирается нужный IB из списка по 2 критериям:
1) Уровень детализации(лода)самого
2) Уровень детализации его соседей

#26
14:18, 19 дек. 2017

Andrey
> Набор IB формируется заранее

что происходит при плавном перемещении  камеры ?

#27
15:52, 19 дек. 2017

Andrey
> завимиости от положения камеры у 2 соседних лодов может быть разная
> детализация, вот тут выбирается нужный IB из списка по 2 критериям:

это не лишняя работа CPU ?

#28
15:57, 19 дек. 2017

Вот хотел спросить, а замаскировать эти стыки традиционными туманом/модно-молодежным  ГРИП мыльцом не проще?

#29
17:22, 19 дек. 2017

nonamezerox,

1-й уровень детализации довольно близок к камере. И у вас не получится огромное открытое пространство, если близко к камере туман. Проще совсем не рисовать то, что дальше тумана. ;)

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

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