elviras9t
Что то не вспомню чтобы в RT нужно было что то сортировать.
gamedevfor
> Что то не вспомню чтобы в RT нужно было что то сортировать.
Для ускорения настоящего ray tracing в +100500 раз (ибо по другому афера с огромными Hz работать попросту не будет) нужно использовать некоторые быстрые (со скоростью света в real-time) предпроцессии, такие как быстрые, точные и дешевые BVH2, туда кстати и входит сортировка. Таким образом, вся скорость, что построения, что трассировка, суммарно становиться довольно большой. Я добавил опцию 32-битных мортонов, только жаль что AMD опять не реализовала нативную поддержку 8-битных данных (ибо запаковка и распаковка данных занимает определенное время, в отличии от 16-бит).
elviras9t
Даже самая быстрая сортировка убьет любую производительность.
И проблема оказывается не только с получением 120Hz, а еще и проблема потреблений памяти. Сколько не старался, а уже половины 8Gb от мажорных видеокарт как будто и не было. А значит все еще "не помайнить параллельно с ray tracing".
elviras9t
Скоро выходят видюхи на 16Gb, так что сейчас 8Gb уже смешно.
Можно задействовать пачку топовых квадр. В квадрах можно суммировать память (хотя это сложно, ибо надо вручную делать распределине), их можно ставить до 16 штук, и они лучше масштабируются, чем джифорсы. Аналогично можно на AMD/FirePro, но слабо разбираюсь в моделях AMD.
PS. AMD анонсировали карточку с 2 Тб памяти. Эта память сделана, насколько я понял, из быстрых ссд, но за счет того, что эти ссд напрямую подключены к чипу, получается нехилый прирост, и это, например, хорошо подходит для обработки видео.
Погодите... у меня возникло острое безвыходное положение.
https://devblogs.nvidia.com/wp-content/uploads/2012/11/karras2012hpg_paper.pdf
Мне нужно разрешить острый конфликт между моей версией BVH2, а вернее структуры (в котором индекс чайлда обозначен оффсетом и каждые 2 чайлда идут сразу и вместе в тот самый оффсет, и разумеется все в одной куче что листья что ноды), и версию HLBVH который строиться по DetermineRange. Я не знаю как разрешить эту несовместимость, я вообще нихера не знаю ничего из матанализа, я не плохо знаю только сам кодинг и языки шейдеров (причем в моем словаре даже нету таких функций, как step, smoothStep, и прочий математический тулинг, в силу моей полной не способности запомнить все и вся, а бывает что я не помню содержимое reflect в силу того что написать это слово проще). И нет, это не мат как вы бы могли подумать.
И задача очень сильно осложняется тем, что нужно еще обойтись без атомиков, нельзя писать общие "Internal" и "Leaf" оффсеты. Не менее сложно найти ParentID в такой структуре (ибо известен только итоговый Range и Split).
elviras9t
у тебя реально постоянно вот весь этот шум в голове не прекращается?
Suslik
> у тебя реально постоянно вот весь этот шум в голове не прекращается?
Я только сегодня задался этим невероятно сложным вопросом...
Я нашел подсказку, но больше похоже на нерешаемое уравнение.
Код двух разных версий сплиттеров (второй еще не завершен)
https://github.com/world8th/vRt/blob/master/shaders-next/hlBVH2/s… -general.glsl
Kirwer7245
> PS. AMD анонсировали карточку с 2 Тб памяти. Эта память сделана, насколько я
> понял, из быстрых ссд, но за счет того, что эти ссд напрямую подключены к чипу,
> получается нехилый прирост, и это, например, хорошо подходит для обработки
> видео.
Не так - такая архитектура подходит только для обработки видео, потому что из-за диких задержек ничего интерактивного на ней ты не сделаешь.
2elviras9t: посмотрел спецификации
Quadro P6000 - 24 Гб
Quadro GV100 - 32 Гб
про последнюю так кстати и пишут, что оно для трассировки лучей хорошо годится
Kirwer7245
Наверное ж автар хочет чтобы RT работал на обычном железе чтобы внучок у бабушки смог поиграть.
Kirwer7245
> Ну наверно там же еще быстрая (обычная) память есть?
Я говорил именно про архитектуру с SSD.
Пока не торопите с RTX, пройдет еще два года прежде чем даже RTX можно будет свободно использовать, забив на паскали и текущие веги окончательно, и использовать только аппаратные решения. Да и не факт что RTX будет капитально быстрее (ибо слышал это всего лишь фича, или микрокода этих вольт, или скрытый алгоритм тензоров). А пока лучше попытаться реализовать ray tracing на чем еще можно... Я сейчас правда, застрял на своем вопросе про сплиттинг BVH, приведение в структурность, ведь это могло бы дать еще 5 FPS как минимум (и следовательно получение хотя бы 80Hz).
Тема в архиве.
Тема закрыта.