/pota

Polynomial optics to Arnold. Camera shader with high-order aberrations

Primary LanguageC++

POTA is an implementation of Sparse high-degree polynomials for wide-angle lenses [2016] for the Arnold renderer. It renders images with high-order aberrations, at a fraction of the cost of tracing rays through lens elements. It is done by pre-calculating fitted polynomials, which serve as a black-box to transform the rays on the sensor to rays on the outer pupil. All credit goes out to the authors of the paper, I only wrote the implementation for Arnold.

Read the full documentation here.

pota_comparison_thinlens_polynomial_optics_zeiss_biotar


Compile instructions:

Base requirement: Arnold >5.0.2.0

OSX:

open makefile     ### change arnold sdk path
mkdir bin
make

Windows

###   using the "x64 native tools command prompt for VS 2017"

cl /LD /I ...\Arnold-5.0.2.0-windows\include /EHsc /O2 pota.cpp /link /LIBPATH:...\Arnold-5.0.2.0-windows\lib ai.lib