diff --git a/intern/cycles/blender/addon/osl.py b/intern/cycles/blender/addon/osl.py index df206eeaace..09fa3fa4c37 100644 --- a/intern/cycles/blender/addon/osl.py +++ b/intern/cycles/blender/addon/osl.py @@ -150,6 +150,8 @@ def osl_param_ensure_property(ccam, param): ui.update(subtype='ANGLE') elif datatype is float and metadata.get('unit') == 'm': ui.update(subtype='DISTANCE') + elif datatype is float and metadata.get('unit') == 'mm': + ui.update(subtype='DISTANCE_CAMERA') elif datatype is float and metadata.get('unit') in ('s', 'sec'): ui.update(subtype='TIME_ABSOLUTE') elif metadata.get('slider'): diff --git a/scripts/templates_osl/advanced_camera.osl b/scripts/templates_osl/advanced_camera.osl index f2b004968cd..1997886177b 100644 --- a/scripts/templates_osl/advanced_camera.osl +++ b/scripts/templates_osl/advanced_camera.osl @@ -26,7 +26,9 @@ float invertDistortionModel(float x, float y, float k1, float k2, float k3) return -1.0; } -shader camera(float focal_length = 50.0 [[ float min = 0.0, float sensitivity = 0.2 ]], +shader camera(float focal_length = 50.0 [[ float min = 0.0, + string unit = "mm", + float sensitivity = 0.2 ]], int do_distortion = 0 [[ string widget = "checkBox"]], int do_swirl = 0 [[ string widget = "checkBox"]], int do_dof = 0 [[ string widget = "checkBox"]], diff --git a/scripts/templates_osl/basic_camera.osl b/scripts/templates_osl/basic_camera.osl index 19ccae3f8c5..71f20247d2b 100644 --- a/scripts/templates_osl/basic_camera.osl +++ b/scripts/templates_osl/basic_camera.osl @@ -1,6 +1,8 @@ /* A basic perspective camera. */ -shader camera(float focal_length = 90.0, +shader camera(float focal_length = 90.0 [[ float min = 0.0, + string unit = "mm", + float sensitivity = 0.2 ]], output point position = 0.0, output vector direction = 0.0, output color throughput = 1.0)