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

Как можно реализовать "Frustum Culling" для "Instanced" (OpenGL) (3 стр)

Страницы: 1 2 3 4 58 Следующая »
#30
21:38, 13 апр. 2016

Ну вы чуваки отжигаете :)


#31
21:38, 13 апр. 2016

MrShoor
> > Ты хоть раз писал GS ?
> Естественно писал

Ну что ты гонишь тогда ? Чувак

#32
21:39, 13 апр. 2016

innuendo
> Ну что ты гонишь тогда ?
Я? Не гоню. А вот ты помоему да.

#33
21:45, 13 апр. 2016

MrShoor
> Я? Не гоню. А вот ты помоему да.

Да как ты задрал-то

+ Показать

Чуешь ?

#34
21:54, 13 апр. 2016

innuendo
> Чуешь ?
Чую что ты бредишь.
Это был изначально геометрический шейдер, который строил шэдоу вольюм. И чтобы оптизировать уже существующий шейдер - смысл в куллинге есть. В этот шейдер кстати скорее всего приходит уже отсеченная геометрия по инстансам, а шейдер дополнительно отсекает треугольники и бекфейсы, чтобы филлрейт в стенсиле сэкономить.

Топикстартеру же нужно отсекать кучу инстансов за пределами фрустума. Если же у тебя не было никаког GS, и нужно отсекать кучу геометрии за пределами - заводить GS который отсекает треугольник - маразм.

p.s. Ну и помоему ты конкретно облажался со своим примером.

#35
22:12, 13 апр. 2016

MrShoor
> Это был изначально геометрический шейдер, который строил шэдоу вольюм.

Вот неадекват. Это не мой пример, а AMD. Там shadow volume близко не было, ещё и stencil приплёл. 


> Ну и при геометрическом шейдере вершины по прежнему будут все обработаны. Т

Все верно ?

#36
22:20, 13 апр. 2016

innuendo
> Вот неадекват. Это не мой пример, а AMD. Там shadow volume близко не было, ещё
> и stencil приплёл. 
Хорошо. Что делает этот шейдер?

> Все верно ?
Да. Ну может уточнить надо:
Ну и при геометрическом шейдере вершины по прежнему будут все обработаны вершинным шейдером.

#37
22:23, 13 апр. 2016

MrShoor
> Да. Ну может уточнить надо:
> Ну и при геометрическом шейдере вершины по прежнему будут все обработаны
> вершинным шейдером.

И причём вершинный шейдер при отсечении ? Отсекается примитив же

> Хорошо. Что делает этот шейдер?

А ты сам не видишь ? Знаток GS :)

#38
22:29, 13 апр. 2016

Правильные пацаны уже давным-давно куллинг делают в compute шейдере

#39
22:32, 13 апр. 2016

bazhenovc
> Правильные пацаны уже давным-давно куллинг делают в compute шейдере

И я даже знаю название этого шейдера :)

#40
22:40, 13 апр. 2016

innuendo
> И причём вершинный шейдер при отсечении ? Отсекается примитив же
При том, GS топикстартеру не подходит. То что отсекается в твоем примере - последствия того, что пришлось использовать GS. Чтобы был хоть какой-то профит. Заводить GS только ради отсечения треугольников бред, потому что это отсечение есть уже после вершинного шейдера (по умолчанию).

> А ты сам не видишь ? Знаток GS :)
По одному шедеру, да еще и не полному - непонятно. Сейчас посмотрел внимательнее. Больше похоже на то, что рендерят в кубмапу одним проходом. Но при рендере в кубмапу - попадают все примитивы, отсекать по фрустуму до рендера в кубмапу невозможно, единого фрустума ведь нет. Вот тут и "выкручиваются" геометрическим шейдером. Чтобы и в один проход, и вроде как куллинг был. Но если CPU имеет свободный бюджет, а ботлнек GPU - то эффективнее на сделать это в 6 проходов на CPU без всякого геометрического шейдера.
В общем ничего не поменялось. Отсечение в GS по фрустуму - бесполезное говно. Но в очень редких случаях (как например рендер в кубмапу) - можно значительно разгрузить CPU путем некоторой дополнительной нагрузки на GPU.

#41
22:42, 13 апр. 2016

MrShoor
> Но если CPU имеет свободный бюджет, а ботлнек GPU - то эффективнее на сделать
> это в 6 проходов на CPU без всякого геометрического шейдера.
Расскажи художникам про 6 проходов на CPU и почему они не могут вот в этой точке на этом уровне поставить фонарь, который кастит омни-тени. Я уверен, они тебя поймут и войдут в положение.

К слову, я удивлён, почему до сих пор не вспомнили про дуал-параболоиды :)

#42
22:45, 13 апр. 2016

bazhenovc
> Расскажи художникам про 6 проходов на CPU
В нульпосте:
> Хочу отрисовать деревья (для леса) через glDrawElementsInstanced, но вот не знаю как для этой функции реализовать отсечение геометрии
Лучше ты расскажи, как тут поможет GS.

#43
22:48, 13 апр. 2016

MrShoor
> Лучше ты расскажи, как тут поможет GS.
Рисуешь лес точками без трансформаций и ничего, после этого в геометрическом шейдере делаешь проверку на видимость и генерируешь импостер.

И это таки будет оптимальным решением для DX10-железа, а на DX11 железках лучше куллинг делать в компьют шейдере и рендерить через DrawIndirect.
Но с третьей стороны, есть замечательные видеокарты Интел, которые очень "любят" DrawIndirect, поэтому на них лучше делать через GS.

#44
23:36, 13 апр. 2016

MrShoor
> отому что это отсечение есть уже после вершинного шейдера (по умолчанию).

Ссылочку на документацию, где это описано ...

Более того, есть даже frustum culling в HS

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

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