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

OpenGL. Запуск конвейера без буфера вершин. Поиск аналога clEnqueueNDRangeKernel. (2 стр)

Страницы: 1 2
#15
13:09, 23 июня 2017

В общем потестил тут с одинм геом шейдером, взятым с github-а, он генерит кубик на каждый воксель текстуры, ну так вот, на текстуре размером 128х128х128 уже круто тормозит, FPS где - то в районе 10...  на radeon hd 7850.  Наверное всё таки реально геом шейдер очень тормозной...
Вот этот шейдер

+ Показать


#16
13:15, 23 июня 2017

-=MASTER=-
С шейдером тут все хорошо - он не тормозит.
Давай считать - 128х128х128 = 2097152 вершин, два ляма вершины!
Каждая вершина генерит еще по 12 треугольников! Итого 25165824 ДВАДЦАТЬ ПЯТЬ МИЛЛИОНОВ ТРЕУГОЛЬНИКОВ!!!!!
Але, тут все будет тормозить!!!!

#17
13:25, 23 июня 2017

foxes
> Але, тут все будет тормозить!!!!
кхе) ну как бы да, этого я не учёл :-)  Я к тому, что где - то читал, что вообще геом шейдер медленный и что в нём особо много лучше не генерить или имелось ввиду, не генерить много на один примитив?

Слушай, в вертексном шейдере discard вообще работает? Ну что бы отбросить лишний point и не генерить на него кубил, если в воксель пустой как бы?

#18
13:32, 23 июня 2017

-=MASTER=-
> Слушай, в вертексном шейдере discard вообще работает? Ну что бы отбросить
> лишний point и не генерить на него кубил, если в воксель пустой как бы?
то что вершинный шейдер обработает 2097152 вершин это еще не страшно.
А в геометрическом, вполне можно условие на каждую закрытую грань поставить.

Только мне не понятно что ты хочешь отобразить воксельный меш или трехмерную текстуру.

#19
13:38, 23 июня 2017

foxes
> то что вершинный шейдер обработает 2097152 вершин это еще не страшно.
нуу...всё ровно хотелось бы отбрасывать уже прямо в вершинном... Пробовал ставить discard в вершинном шейдере - crash, походу реально отбрасывать через discard можно только во фрагментном...

foxes
> А в геометрическом, вполне можно return на каждую закрытую грань поставить.
ну да, как вариант, тогда же не будет генеритсья кубик и фрагментный ничего лишнего не обработает....

foxes
> Только мне не понятно что ты хочешь отобразить воксельный меш или трехмерную
> текстуру.
воксельный меш... Я вообще, после определённых обдумываний, решил вернуться к GI на вокселях, теперь вот пилю Voxel Cone Tracing GI, сначала запилю на простой 3D текстуре, а потом поиграюсь со Sparse текстурой...  Пока что вокселизацию колупаю :-)

#20
13:39, 23 июня 2017

Основная проблема тут на самом деле не в количестве треугольников, а в том что они стоят друг за другом 128 слоев которых ты не видишь. Аналогично тому что 128 раз отрисовать сцену с закрашенным фоном. Уже это уменьшает FPS на 128 раз до 31.
Как бы кому не казалось что закраска экрана вообще ни чего не расходует - но это уже 2 миллиона расчетов.

#21
13:43, 23 июня 2017

foxes
> Уже это уменьшает FPS на 128 раз до 31.
хмм, а почему? Разве они не рендерется просто в Depth буфер и в итоге просто отбрасываются те, которые как бы "за" ?

#22
13:46, 23 июня 2017

-=MASTER=-
> Разве они не рендерется просто в Depth буфер и в итоге просто отбрасываются те,
> которые как бы "за" ?
просто в Depth буфер - это все 128 расчетов на пиксель. Не факт что именно отрисуется первым, так же как и то что проверка на глубину проходит после расчета фрегментного шейдера.

#23
13:48, 23 июня 2017

кстати, по поводу discard-а, всё верно, только фрагментный поддерживает

ERROR: 3:18: error(#139) "discard" supported in fragment shaders only

#24
15:39, 23 июня 2017

Святые угодники, наконец то я вокселизовал чайник ))))  Ох лол ))
Изображение
Изображение

Вижу дыры, наверное нужно делать conservative вокселизацию ...

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

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