crypt of decay - не, ну интересно же! [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

не, ну интересно же! [Dec. 16th, 2022|02:22 am]
Previous Entry Add to Memories Tell A Friend Next Entry
ну, сделал я рендер вокселей (для будущего редактора) путём залития координат и генерации кубиков в geometry shader. неинтересно. и тормозит, кстати, на любимой тестовой сцене из voxlap.

в общем, пойду во все тяжкие, потребую GL4+ (короче, оче новый), и напилю sparse voxel octrees, с рейкастингом на гпу. а почему бы и да. подозреваю, что тормозить будет ещё адовей, но это как раз интересно же!

поскольку ни наворотов, ни огромных моделей мне не надо, то можно не реализовывать всякие виртуальные памяти и хитрооптимизации, а тупо лить в GPU массив-дерево. нода умещается в 16 байт, та же самая структура подходит и для CPU. конечно, из-за динамики оно немножко проёбывает память и срёт в кэши, поэтому могут быть тормоза. но не проверишь — не узнаешь, насколько.

ну да, рендер SVO на CPU я кое-как делал, чисто пощупать и игрушечный. теперь интересно, как моя древняя GT720 это потянет.


p.s.: по ходу ужал размер ноды до 8 байт. мне Оче Большие Объекты не нужны, поэтому ограничил количество нод до 2^23 пока. если будет надо — потом сделаю больше. это красиво оставляет восемь битов на маску валидности child node, и один бит на указание, что следующий уровень — листики. четыре байта проёбаны на явное хранение номера родителя, потому что это удобно в итераторах (позволяет не хранить явно стек, и заодно итератор более-менее устойчив к добавлению новых вокселов в дерево). заодно сделал колбэки на каждое изменение, так что для undo можно тупо запоминать изменившиеся байты, а потом не менее тупым `memcpy()` откатывать обратно.
Linkmeow!

Comments:
From:(Anonymous)
Date:December 16th, 2022 - 08:30 am
(Link)
С GT720 в этой области ловить нечего.
[User Picture]
From:[info]ketmar
Date:December 17th, 2022 - 02:08 pm
(Link)
с чего ты так решил? она на куде вполне справляется с рилтаймовым рейтрейсом несложных сцен, например. блин, цпу справляется с трейсом сложных svo в четыре потока почти в рилтайме. с чего бы ей-то не справиться?
From:(Anonymous)
Date:December 20th, 2022 - 05:46 am
(Link)
Ну можно чисто для сравнения порядка величин прогнать рендер в блендере на CPU и GPU, например.
Я так-то не утверждаю, что прироста не будет, но чудес тут ждать не стоит.
[User Picture]
From:[info]ketmar
Date:December 20th, 2022 - 09:20 am
(Link)
>прогнать рендер в блендере
прости, я сразу не понял что ты тролироваешь.
[User Picture]
From:[info]ketmar
Date:December 20th, 2022 - 10:23 am
(Link)
как и следовало ожидать, чудес не произошло, да.
рендер 320x240, цпу: ~80 миллисекунд (~12 FPS).
рендер 1024x768, гпу: хуй знает сколько (лень раскочегаривать гпу таймеры), solid 60 FPS.
[User Picture]
From:[info]ketmar
Date:December 20th, 2022 - 10:25 am
(Link)
ну ладно, зависит от вида, конечно, иногда падает до 30 FPS.
From:(Anonymous)
Date:December 17th, 2022 - 09:20 pm
(Link)
Хуя ты буржуй! Я думал, у тебя MX440.
From:(Anonymous)
Date:December 22nd, 2022 - 09:10 am
(Link)
у меня было это говно в детстве лол со смешным вентилятором
From:(Anonymous)
Date:December 23rd, 2022 - 10:42 am
(Link)
А у моей вентилятора не было.
From:(Anonymous)
Date:December 23rd, 2022 - 10:42 am
(Link)
В моровинде водичка была БЕЗ ШЕЙДЕРОВ!
From:(Anonymous)
Date:December 18th, 2022 - 06:19 pm
(Link)
1 meow, 2 meows, 3 meows, meow!
4 meows, 5 meows, 6 meows, meow!