diff options
Diffstat (limited to 'intern/cycles/scene/camera.cpp')
-rw-r--r-- | intern/cycles/scene/camera.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/intern/cycles/scene/camera.cpp b/intern/cycles/scene/camera.cpp index 5bafe736fb5..2f3b55f887f 100644 --- a/intern/cycles/scene/camera.cpp +++ b/intern/cycles/scene/camera.cpp @@ -100,6 +100,7 @@ NODE_DEFINE(Camera) panorama_type_enum.insert("mirrorball", PANORAMA_MIRRORBALL); panorama_type_enum.insert("fisheye_equidistant", PANORAMA_FISHEYE_EQUIDISTANT); panorama_type_enum.insert("fisheye_equisolid", PANORAMA_FISHEYE_EQUISOLID); + panorama_type_enum.insert("fisheye_lens_polynomial", PANORAMA_FISHEYE_LENS_POLYNOMIAL); SOCKET_ENUM(panorama_type, "Panorama Type", panorama_type_enum, PANORAMA_EQUIRECTANGULAR); SOCKET_FLOAT(fisheye_fov, "Fisheye FOV", M_PI_F); @@ -112,6 +113,12 @@ NODE_DEFINE(Camera) SOCKET_FLOAT(fov_pre, "FOV Pre", M_PI_4_F); SOCKET_FLOAT(fov_post, "FOV Post", M_PI_4_F); + SOCKET_FLOAT(fisheye_polynomial_k0, "Fisheye Polynomial K0", 0.0f); + SOCKET_FLOAT(fisheye_polynomial_k1, "Fisheye Polynomial K1", 0.0f); + SOCKET_FLOAT(fisheye_polynomial_k2, "Fisheye Polynomial K2", 0.0f); + SOCKET_FLOAT(fisheye_polynomial_k3, "Fisheye Polynomial K3", 0.0f); + SOCKET_FLOAT(fisheye_polynomial_k4, "Fisheye Polynomial K4", 0.0f); + static NodeEnum stereo_eye_enum; stereo_eye_enum.insert("none", STEREO_NONE); stereo_eye_enum.insert("left", STEREO_LEFT); @@ -418,6 +425,9 @@ void Camera::update(Scene *scene) -longitude_min, latitude_min - latitude_max, -latitude_min + M_PI_2_F); + kcam->fisheye_lens_polynomial_bias = fisheye_polynomial_k0; + kcam->fisheye_lens_polynomial_coefficients = make_float4( + fisheye_polynomial_k1, fisheye_polynomial_k2, fisheye_polynomial_k3, fisheye_polynomial_k4); switch (stereo_eye) { case STEREO_LEFT: |