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

Dynamic vertex pulling в Direct3D11 (комментарии) (3 стр)

Страницы: 1 2 3
#30
16:18, 22 янв. 2015

Оверхед от "мусорных вершин" не обязан быть большим, его всегда можно ограничить за счёт увеличения количества draw calls. К примеру, если есть куча всяких мешей с размером от 1 до 65535 вертекса, то при прочих равных их всех можно нарисовать за не более чем 180 draw calls с оверхедом не более 5%. При максимальном оверхеде в 10% то же самое можно уже сделать за не более чем 100 draw calls, при 20% - за порядка 55. Но в реальности эти числа можно уменьшить ещё минимум вдвоё (рисовать два разных "размера" за один draw call, например).


#31
16:22, 22 янв. 2015

MrShoor
> Перед отрисовкой создаешь Indirect буфер, заполняешь его структурами:
> cmd->first,  cmd->count,  cmd->instanceCount, cmd->baseInstance
> для каждого объекта.
Ты не можешь передать в DrawIndirect несколько таких структур!

Только одну. Несколько структур ты можешь передать в MultiDrawIndirect.

#32
19:57, 22 янв. 2015

bazhenovc

У него бзик на инстансингах :)

#33
9:59, 24 янв. 2015

bazhenovc
> Ты не можешь передать в DrawIndirect несколько таких структур!
> Только одну. Несколько структур ты можешь передать в MultiDrawIndirect.
Действительно, был не прав, т.к. с индиректом не работал еще, а только собирался. Изучил тему глубже. Странное решение было ввести DrawIndirect, а MultiDrawIndirect не вводить.

#34
10:03, 24 янв. 2015

MrShoor
> Странное решение было ввести DrawIndirect, а MultiDrawIndirect не вводить.

У них и простого Multi никогда не было. Хотя у AMD в железках такое есть 

#35
13:01, 30 янв. 2015

bazhenovc

я скоро пример получше выложу. От 22 января.

И где демка ?
От которой все должны были выпасть в осадок :)
#36
13:25, 30 янв. 2015

ronniko
Изображение
Много травы, кустики уникальные.

Исходники: https://github.com/bazhenovc/sigrlinn/blob/master/demo/demo_grass.cc

#37
13:28, 30 янв. 2015

А где же разные 3д модели с разными текстурами ? :(
Случайно не за теми кустиками травы ? :)

#38
13:33, 30 янв. 2015

ronniko
Не всё сразу, деревья ещё должен нарисовать художник, нужно написать тулзы для экспорта, нужно интегрировать технологию в движок.

Будет, не переживай, просто сейчас много работы и мало времени.

#39
14:05, 30 янв. 2015

bazhenovc

Не всё сразу, деревья ещё должен нарисовать художник, нужно написать тулзы для экспорта, нужно интегрировать технологию в движок.

Звучит как развод для детей :)
А просто 3д бокс, сферу и цилиндр с разными текстурами технология не позволяет вывести ? :)
#40
23:11, 28 мар. 2015

А как по скорости работают эти DrawInstanced и StructuredBuffer?
Не медленнее, чем обычный способ рендеринга?
Говорят доступ к StructuredBuffer медленнее, чем обычный VertexBuffer?

#41
23:19, 28 мар. 2015

WISHMASTER35
Что ты подразумеваешь под "Не медленнее, чем обычный способ рендеринга"?

Есть CPU time, есть GPU time. Этот метод серьёзно уменьшает CPU time, но при этом добавляет немного GPU time, но замерять сколько он добавляет на GPU довольно сложно из-за влияния десятка других факторов.

#42
14:12, 29 мар. 2015

bazhenovc
я имею ввиду, если использовать это просто для рендеринга меша т.е. без батчинга.
Я в юнити хотел использовать ComputeBuffer и DrawProcedural, чтобы создать меш со своим форматом вершин.
Так же иногда используют ComputeBuffer и DrawProceduralIndirect, чтобы рендерить сгенерированный на видеокарте меш. Может для террейнов это используется, хотя не знаю как там генерируется сетка.
Говорят эти буфера работают медленнее т.к. в них можно еще и писать.

Страницы: 1 2 3
ПрограммированиеФорумГрафика

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