пятница, 21 апреля 2017 г.

github.com/githole/

очень благодарен сетевому создателю многих рендров github.com/githole
с его подачи мне доступны рендеры:
akari3 https://github.com/githole/akari3
akari2 https://github.com/githole/akari2
akari https://github.com/githole/akari
Kelemen style MLT https://github.com/githole/simple-mlt
path tracer https://github.com/githole/cpuex-pt
edubpt https://github.com/githole/edubpt
simple-bidirectional-pathtracer https://github.com/githole/simple-bidirectional-pathtracer

GEMSPT https://github.com/githole/gemspt
интересен тем, что четко прописаны Diffuse, Specular, Glass материалы.
после внедрения obj достаточно просто переключать между этими 3мя материалами.
хорошо расширяется

четверг, 20 апреля 2017 г.

akari2 optimised path tracer - port to minGW gcc and Linux gcc

сделал оптимизации оригинальному akari2 https://github.com/githole/akari2,
сделал port для gcc и выложил на github https://github.com/tigrazone/akari2

akari2 - path tracer с HDRI освещением и загрузкой сцен из obj, mtl.
mtl тут нестандартный, сделаю стандартным + расширения mtl



по сравнению с akari, тут нет, но допишу:
  • importance sampling for IBL
  • adaptive antialiasing
  • DOF
  • vigneting
  • aperture
  • direct lighting

есть большой плюс - path tracing воплощен так, что легко можно переделать в bidirectional path tracer
в nanort/examples/bidir_path_tracer/ воплощен еще emission и больше материалов поддерживается, чем в akari2.
большое спасибо авторам указанных рендеров!!!!!!!!!!!!!!!!

среда, 12 апреля 2017 г.

smallpt pascal lazarus

Очень мало примеров современного и достойного global illumination на pascal в модификации Delphi и Lazarus.
Есть очень неплохой пример на Turbo Pascal 3/Lazarus, написан Dirk de la Hunt http://www.iwasdeportedandalligotwasthislousydomain.co.uk/static.php?page=smallpt_tp

С моими оптимизациями path tracer ускорился на 15%.

Оригинальная версия by Dirk de la Hunt просчитала картинку 1024x768 на 16 spp 4-мя потоками за 68 секунд.
Моя версия - 59 с.

Если выставить в настройках компилятора платформу x86_64, это даст еще прирост скорости!

В сравнении с C++ версией скомпилированной MinGW gcc - 48с - на 15% быстрее моей версии на Lazarus, но в сравнении с скомпилированным Visual Studio Compiler(69c) или Intel C++ compiler результат даже хуже чем Lazarus или похожий.

В настройках всех компиляторов я подбирал самые оптимальные настройки, которые давали скоростной код.

скачать smallpt pascal lazarus path tracer с github

Огромным плюсом я считаю библиотеку FreeImage, которая работает с множеством графических файлов, в том числе поддерживает новейшие изменения в jpeg и работает с HDR, EXR и есть подвязка под Lazarus.

Поэтому на Lazarus буду писать и bidirectional path tracer, и mlt, и vcm!

воскресенье, 9 апреля 2017 г.

upbp: path reuse

идея:
соединять eye path не с 1 light path, а с несколькими


eye path соединяется c 1 light path
44 секунды на 1 sample per pixel


eye path соединяется c 5 light path
66 секунд на 1 sample per pixel

как видно из изображений, path reuse помогает найти больше specular path - там где каустика и отражения

для визуального сравнения смотрите страницу

пятница, 7 апреля 2017 г.

ini как формат сохранения сцены

ini выбираю потому что он проще для редактирования и понимания, чем xml и неструктурированный txt или текстовые описания в своих куче форматов.
для чтения ini нашел библиотеку inih, затем немного её оптимизировал и выложил
идею использовать ini для сохранения сцены подсмотрел у автора рендера oreoren

четверг, 6 апреля 2017 г.

akarized

akari хорош тем, что там есть свой qbvh очень шустрый - и строит быстро и пересечения находит и не надо подключать большие либы типа embree или nanort.
в akari также есть:
* adaptive IBL
* adaptive antialiasing
* DOF
* vigneting
* aperture
* path tracing with explicit direct lighting
* сохранение hdr, bmp
* чтение hdr

добавил к вышеперечисленному небольшие оптимизации вроде вычисления sincos одной командой, а не 2мя функциями sin и cos, разложение вычисления ONB...

среда, 5 апреля 2017 г.

akari2 и оригинальная сцена - 2 миллиона треугольников


картинка кликабельна! | picture is clickable!
HDRI освещение, path tracing, normal mapping
10 минут на amd athlon dual core 4200+, 14 секунд на картинку 1920x1080, 40 проходов

akari2 и hairball.obj - много треугольников!

akari2 отличается от akari наличием obj loader, normal mapping из файла
не очень много я почерпну из него
загрузил hairball.obj на 2.88 миллионов треугольников



картинка кликабельна! | picture is clickable!
HDRI освещение, path tracing, normal mapping
30 минут на amd athlon dual core 4200+, 11 секунд на картинку 1920x1080, 152 прохода

можно скачать архив с akari2 + haiball.obj для windows

akari + mcmc ups

собрал akari под MinGW 64-битным компилятором. собирается и под linux тоже теперь.
markov chain monte carlo ups/vcm(mcmcups) встрою в akari как один из рендеров
очень пригодится akari aaa, придумал как использовать с mcmcups