Всем привет!
На сайте http://garanzha.com можно найти мой диплом на русском языке о методах быстрой трассировки лучей в динамических сценах. Если вкратце, то на русском описаны в одном месте современные способы ускорения трассировки лучей, оптимизация, трюки в реализации и т.д. Т.е. с акцентом на повышение скорости рендеринга именно динамических сцен, но как бы без добавления ограничений и боттлнеков на получение "нечётких" эффектов (soft shadows, glossy reflections, GI). Тесты есть пока только для мягких теней. Для динамических сцен есть ускорение построения BVH (на основе пре-кластеризации примитивов сцены), но при этом скорость трассировки не страдает.
Сейчас можно на древнем 4-ядернике в интерактивном режиме рендерить взрывающегося дракона с мягкими тенями. В дипломе всё описание и тесты есть. Но для второй моей статьи на англ. (The Use of Precomputed Triangle Clusters...) приведено видео демки, слайды и комментарии на рецензии.
Приветствую критику, хорошую и плохую :) Авось, что-нибудь ещё придумаем, что где улучшить.
Обалдеть...0_0 ;-)
GaRRiLL
очень интересно и познавательно. А реальная демка этой красоты есть ?
GaRRiLL
демку бы=) и можно сорцы))
GaRRiLL
очень круто
GaRRiLL
круто, но почему только 1 пример с over 1kk трианглес? это ж трассировка.
А почему, собственно, на CPU, а не на GPU?
Сорцов не будет :) А то потом долго материться будете на меня)
Код плохой и очень большой, много оптимизации, децл комментариев. Демку нет смысла выдавать, потому что опять же... "имя файла со сценой указано в тексте проги и надо перекомпилировать, чтобы новую смотреть" (вы это не читали :))). Загрузчик сцен очень плохой, параметры крутить надо (фак некогда к ним писать). Смысл в том, что многие мелочи не сделаны. В видео захвачено происходящее в окне программы для разных сцен.
Почему выбраны эти сцены? Потому что они среди общепринятых для таких тестов. Потому что на примере этих сцен показал, что алгоритмы работают для: взрывных анимаций, столновений, иерархич. анимаций, для натягивания ткани (или как там её), для плохой сцены с длинными треугольниками (и работает хуже), для 10М сцены (это 3д-скан из стэнфордского репозитария).
Почему только 1 пример с 10М трианглес? Статья чем короче - тем лучше. Диплом и так раздул. Тестил с xyz_dragon и другими моделями до 10М треуг. (из того же стэнфордского репозитария) - всё тоже самое, нормально. На очень больших моделях (20-30 или 100M треугольников) потестить не удалось, т.к. тестилось на Win32. А самописный менеджер памяти пока не поддерживает больших массивов, даже если на куски бью их.
Анимаций с огромным числом треугольников ещё не нашёл.
Самое главное, что все подробности в записке диплома, они не трудные, с картинками :)
GaRRiLL
приветствую коллега! у мну сейчас такая же тема диплома, но с прицелом на реализацию на GPU (CUDA).
А сколько ФПС в рилтайме оно выдаёт?
В терминологии - каша какая-то, но иначе неплохо бъло бъ что-то такое въложить в faq - люди оценят.
0r@ngE
Я вот сейчас тоже пытаюсь на куде сделать, посмотрим что получится... Тут с памятью проблемы гораздо круче :)).
Executor
Посмотри видео ещё раз внимательнее. Total FPS = 1000 / (BVH Build time [in ms] + Render time [in ms]). Всё выводится.
Z
По поводу терминологии не могли бы подробнее, где косяки? Да, на защите сказали, что англицизмов много, но по мне - это фигня, вообще времени не хватило.
Как выкладывать в faq, или это модератор сделает?
All
Есть конструктивная конкретная критика или ещё не дочитали? :)
Простите, немного оффтоп: Я подумываю о теме диплома, который был бы связан с компьютерной графикой. Не могли бы вы посоветовать, в сторону каких модных тенденций стоит смотреть? От обилия информации по трассировке лучей просто глаза разбегаются(.
gnoblin
> в сторону каких модных тенденций стоит смотреть?
Ну это уж что тебе по душе. Странно как-то думать о "моде" в компьютерной графике.
Можешь глянуть, что было на SIGGRAPH и тогда уже решать...
gnoblin
Делайте трассировку лучей на GPU. Обозримая перспектива сейчас здесь.
Проект Larrabee забуксовал, поэтому на многоядерные CPU надеяться трудно.
Почему-то я отнёс Larabee к CPU. Наверное, я так думаю, потому что на этом устройстве по проекту, как и на CPU, несколько (или пару десятков) довольно сложных ядер. А GPU - это много простых ядер и широкие SIMD вектора (CUDA warps).
Тема в архиве.