Wednesday, November 14, 2012

Renderman + GPU: Реализация SSAO

Давно хотел реализовать Screen Space Ambient Occlusion в рендермане. Конечно результат не точный, но применять эту технологию для производства сериалов вполне целесообразно. Понятное дело, перебирать точки на z-map и p-map на CPU неинтересно. Гораздо целесообразнее переложить эту работу на GPU. В первом приближении я не стремился сделать работу быстрой и правильной. Хотел лишь убедиться что смогу в память карты загрузить exr с z-map и CUDA kernel вызываемый из Renderman Shading Plugin сможет "бегать" по текстуре. По сути это трейсинг в в height field'е, описаный в http://steps3d.narod.ru/tutorials/ssao-tutorial.html .
Для оптимизации думаю разбить на две kernel-а: один для сэмплов каждой точки Grid-а , второй для суммирования полученных сэмплов.  Еще изображения с различными параметрами радиуса и порога глубины.
 

Hello World!

Всем привет! Как то так получилось, что я завел свой технический блог на английском, в основном для языковой практики. Но со временем, помимо англоязычных читателей появились и русскоязычные, которые иногда просят тоже самое объяснить на русском.  Так что буду наверстывать упущенное.