Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-11-04 18:36:06 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-11-04 18:36:06 +0400
commit4ea816837de646af124ffc82758cae37950a0a51 (patch)
tree771c7a0e084446080d6f6d12258585a479bf2887 /release/scripts
parent82dc05391cdda573f1523325bfd4c6a2a5233323 (diff)
Configurable sensor size:
- Added support of variable size sensor width and height. - Added presets for most common cameras, also new presets can be defined by user. - Added option to control which dimension (vertical or horizontal) of sensor size defines FOV. Old behavior of automatic FOV calculation is also kept. - Renderer, viewport, game engine and collada importer/exporter should deal fine with this changes. Other exporters would be updated soon.
Diffstat (limited to 'release/scripts')
-rw-r--r--release/scripts/presets/camera/APS-C_DSLR.py4
-rw-r--r--release/scripts/presets/camera/Blender.py4
-rw-r--r--release/scripts/presets/camera/Canon_1100D.py4
-rw-r--r--release/scripts/presets/camera/Canon_1D.py4
-rw-r--r--release/scripts/presets/camera/Canon_1DS.py4
-rw-r--r--release/scripts/presets/camera/Canon_500D.py4
-rw-r--r--release/scripts/presets/camera/Canon_550D.py4
-rw-r--r--release/scripts/presets/camera/Canon_5D.py4
-rw-r--r--release/scripts/presets/camera/Canon_600D.py4
-rw-r--r--release/scripts/presets/camera/Canon_60D.py4
-rw-r--r--release/scripts/presets/camera/Canon_7D.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D300S.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D3100.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D35.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D5000.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D5100.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D7000.py4
-rw-r--r--release/scripts/presets/camera/Nikon_D90.py4
-rw-r--r--release/scripts/presets/camera/Red_Epic.py4
-rw-r--r--release/scripts/presets/camera/Red_One_2K.py4
-rw-r--r--release/scripts/presets/camera/Red_One_3K.py4
-rw-r--r--release/scripts/presets/camera/Red_One_4K.py4
-rw-r--r--release/scripts/presets/camera/full_frame_35mm_film.py4
-rw-r--r--release/scripts/presets/camera/micro_four_thirds.py4
-rw-r--r--release/scripts/presets/camera/super_16_film.py4
-rw-r--r--release/scripts/presets/camera/super_35_film.py4
-rw-r--r--release/scripts/startup/bl_operators/presets.py19
-rw-r--r--release/scripts/startup/bl_ui/properties_data_camera.py71
28 files changed, 178 insertions, 16 deletions
diff --git a/release/scripts/presets/camera/APS-C_DSLR.py b/release/scripts/presets/camera/APS-C_DSLR.py
new file mode 100644
index 00000000000..829e03cc5cf
--- /dev/null
+++ b/release/scripts/presets/camera/APS-C_DSLR.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.3
+bpy.context.object.data.sensor_height = 14.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Blender.py b/release/scripts/presets/camera/Blender.py
new file mode 100644
index 00000000000..9fa4ab752e3
--- /dev/null
+++ b/release/scripts/presets/camera/Blender.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 32
+bpy.context.object.data.sensor_height = 18
+bpy.context.object.data.sensor_fit = 'AUTO'
diff --git a/release/scripts/presets/camera/Canon_1100D.py b/release/scripts/presets/camera/Canon_1100D.py
new file mode 100644
index 00000000000..54f2cf75b54
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_1100D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.2
+bpy.context.object.data.sensor_height = 14.7
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_1D.py b/release/scripts/presets/camera/Canon_1D.py
new file mode 100644
index 00000000000..0bb0e910377
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_1D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 27.9
+bpy.context.object.data.sensor_height = 18.6
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_1DS.py b/release/scripts/presets/camera/Canon_1DS.py
new file mode 100644
index 00000000000..158a6235f32
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_1DS.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 36.0
+bpy.context.object.data.sensor_height = 24.0
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_500D.py b/release/scripts/presets/camera/Canon_500D.py
new file mode 100644
index 00000000000..829e03cc5cf
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_500D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.3
+bpy.context.object.data.sensor_height = 14.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_550D.py b/release/scripts/presets/camera/Canon_550D.py
new file mode 100644
index 00000000000..829e03cc5cf
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_550D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.3
+bpy.context.object.data.sensor_height = 14.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_5D.py b/release/scripts/presets/camera/Canon_5D.py
new file mode 100644
index 00000000000..158a6235f32
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_5D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 36.0
+bpy.context.object.data.sensor_height = 24.0
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_600D.py b/release/scripts/presets/camera/Canon_600D.py
new file mode 100644
index 00000000000..829e03cc5cf
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_600D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.3
+bpy.context.object.data.sensor_height = 14.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_60D.py b/release/scripts/presets/camera/Canon_60D.py
new file mode 100644
index 00000000000..829e03cc5cf
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_60D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.3
+bpy.context.object.data.sensor_height = 14.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Canon_7D.py b/release/scripts/presets/camera/Canon_7D.py
new file mode 100644
index 00000000000..829e03cc5cf
--- /dev/null
+++ b/release/scripts/presets/camera/Canon_7D.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.3
+bpy.context.object.data.sensor_height = 14.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D300S.py b/release/scripts/presets/camera/Nikon_D300S.py
new file mode 100644
index 00000000000..a0505bf9b9c
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D300S.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.6
+bpy.context.object.data.sensor_height = 15.8
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D3100.py b/release/scripts/presets/camera/Nikon_D3100.py
new file mode 100644
index 00000000000..238d9c22d12
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D3100.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.1
+bpy.context.object.data.sensor_height = 15.4
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D35.py b/release/scripts/presets/camera/Nikon_D35.py
new file mode 100644
index 00000000000..e6dc62dc100
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D35.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 36.0
+bpy.context.object.data.sensor_height = 23.9
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D5000.py b/release/scripts/presets/camera/Nikon_D5000.py
new file mode 100644
index 00000000000..a0505bf9b9c
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D5000.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.6
+bpy.context.object.data.sensor_height = 15.8
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D5100.py b/release/scripts/presets/camera/Nikon_D5100.py
new file mode 100644
index 00000000000..1d819cce65b
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D5100.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.6
+bpy.context.object.data.sensor_height = 15.6
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D7000.py b/release/scripts/presets/camera/Nikon_D7000.py
new file mode 100644
index 00000000000..1d819cce65b
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D7000.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.6
+bpy.context.object.data.sensor_height = 15.6
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Nikon_D90.py b/release/scripts/presets/camera/Nikon_D90.py
new file mode 100644
index 00000000000..a0505bf9b9c
--- /dev/null
+++ b/release/scripts/presets/camera/Nikon_D90.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 23.6
+bpy.context.object.data.sensor_height = 15.8
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Red_Epic.py b/release/scripts/presets/camera/Red_Epic.py
new file mode 100644
index 00000000000..14f4abaee90
--- /dev/null
+++ b/release/scripts/presets/camera/Red_Epic.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 30.0
+bpy.context.object.data.sensor_height = 15.0
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Red_One_2K.py b/release/scripts/presets/camera/Red_One_2K.py
new file mode 100644
index 00000000000..ef2708f75b2
--- /dev/null
+++ b/release/scripts/presets/camera/Red_One_2K.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 11.1
+bpy.context.object.data.sensor_height = 6.24
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Red_One_3K.py b/release/scripts/presets/camera/Red_One_3K.py
new file mode 100644
index 00000000000..5ddff2746eb
--- /dev/null
+++ b/release/scripts/presets/camera/Red_One_3K.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 16.65
+bpy.context.object.data.sensor_height = 9.36
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/Red_One_4K.py b/release/scripts/presets/camera/Red_One_4K.py
new file mode 100644
index 00000000000..8ab9b38cbd5
--- /dev/null
+++ b/release/scripts/presets/camera/Red_One_4K.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 22.2
+bpy.context.object.data.sensor_height = 12.6
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/full_frame_35mm_film.py b/release/scripts/presets/camera/full_frame_35mm_film.py
new file mode 100644
index 00000000000..d3e141ba4d9
--- /dev/null
+++ b/release/scripts/presets/camera/full_frame_35mm_film.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 36
+bpy.context.object.data.sensor_height = 24
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/micro_four_thirds.py b/release/scripts/presets/camera/micro_four_thirds.py
new file mode 100644
index 00000000000..36fb0aac391
--- /dev/null
+++ b/release/scripts/presets/camera/micro_four_thirds.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 17.3
+bpy.context.object.data.sensor_height = 13.0
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/super_16_film.py b/release/scripts/presets/camera/super_16_film.py
new file mode 100644
index 00000000000..1e42953bf05
--- /dev/null
+++ b/release/scripts/presets/camera/super_16_film.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 12.52
+bpy.context.object.data.sensor_height = 7.41
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/presets/camera/super_35_film.py b/release/scripts/presets/camera/super_35_film.py
new file mode 100644
index 00000000000..65ccb0f216c
--- /dev/null
+++ b/release/scripts/presets/camera/super_35_film.py
@@ -0,0 +1,4 @@
+import bpy
+bpy.context.object.data.sensor_width = 24.89
+bpy.context.object.data.sensor_height = 18.66
+bpy.context.object.data.sensor_fit = 'HORIZONTAL'
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index 2e42105fbf0..21ac128f177 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -195,6 +195,25 @@ class AddPresetRender(AddPresetBase, Operator):
preset_subdir = "render"
+class AddPresetCamera(AddPresetBase, Operator):
+ '''Add a Camera Preset'''
+ bl_idname = "camera.preset_add"
+ bl_label = "Add Camera Preset"
+ preset_menu = "CAMERA_MT_presets"
+
+ preset_defines = [
+ "cam = bpy.context.object.data"
+ ]
+
+ preset_values = [
+ "cam.sensor_width",
+ "cam.sensor_height",
+ "cam.sensor_fit"
+ ]
+
+ preset_subdir = "camera"
+
+
class AddPresetSSS(AddPresetBase, Operator):
'''Add a Subsurface Scattering Preset'''
bl_idname = "material.sss_preset_add"
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index 5255af40951..4adaad75e42 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -33,6 +33,14 @@ class CameraButtonsPanel():
return context.camera and (engine in cls.COMPAT_ENGINES)
+class CAMERA_MT_presets(bpy.types.Menu):
+ bl_label = "Camera Presets"
+ preset_subdir = "camera"
+ preset_operator = "script.execute_preset"
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ draw = bpy.types.Menu.draw_preset
+
+
class DATA_PT_context_camera(CameraButtonsPanel, Panel):
bl_label = ""
bl_options = {'HIDE_HEADER'}
@@ -54,7 +62,7 @@ class DATA_PT_context_camera(CameraButtonsPanel, Panel):
split.separator()
-class DATA_PT_camera(CameraButtonsPanel, Panel):
+class DATA_PT_lens(CameraButtonsPanel, Panel):
bl_label = "Lens"
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -69,12 +77,12 @@ class DATA_PT_camera(CameraButtonsPanel, Panel):
col = split.column()
if cam.type == 'PERSP':
+ row = col.row()
if cam.lens_unit == 'MILLIMETERS':
- col.prop(cam, "lens")
+ row.prop(cam, "lens")
elif cam.lens_unit == 'DEGREES':
- col.prop(cam, "angle")
- col = split.column()
- col.prop(cam, "lens_unit", text="")
+ row.prop(cam, "angle")
+ row.prop(cam, "lens_unit", text="")
elif cam.type == 'ORTHO':
col.prop(cam, "ortho_scale")
@@ -90,26 +98,55 @@ class DATA_PT_camera(CameraButtonsPanel, Panel):
split = layout.split()
+ col = split.column()
+ col.label(text="Depth of Field:")
+
+ col.prop(cam, "dof_object", text="")
+
+ col = col.column()
+ if cam.dof_object is not None:
+ col.enabled = False
+ col.prop(cam, "dof_distance", text="Distance")
+
col = split.column(align=True)
col.label(text="Shift:")
col.prop(cam, "shift_x", text="X")
col.prop(cam, "shift_y", text="Y")
- col = split.column(align=True)
- col.label(text="Clipping:")
- col.prop(cam, "clip_start", text="Start")
- col.prop(cam, "clip_end", text="End")
- layout.label(text="Depth of Field:")
+class DATA_PT_camera(CameraButtonsPanel, Panel):
+ bl_label = "Camera"
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ cam = context.camera
+
+ row = layout.row(align=True)
+
+ row.menu("CAMERA_MT_presets", text=bpy.types.CAMERA_MT_presets.bl_label)
+ row.operator("camera.preset_add", text="", icon="ZOOMIN")
+ row.operator("camera.preset_add", text="", icon="ZOOMOUT").remove_active = True
+
+ layout.label(text="Sensor:")
split = layout.split()
- split.prop(cam, "dof_object", text="")
- col = split.column()
+ col = split.column(align=True)
+ if cam.sensor_fit == 'AUTO':
+ col.prop(cam, "sensor_width", text="Size")
+ else:
+ col.prop(cam, "sensor_width", text="Width")
+ col.prop(cam, "sensor_height", text="Height")
- if cam.dof_object is not None:
- col.enabled = False
- col.prop(cam, "dof_distance", text="Distance")
+ col = split.column(align=True)
+ col.prop(cam, "sensor_fit", text="")
+
+ layout.label(text="Clipping:")
+ row = layout.row(align=True)
+ row.prop(cam, "clip_start", text="Start")
+ row.prop(cam, "clip_end", text="End")
class DATA_PT_camera_display(CameraButtonsPanel, Panel):
@@ -127,10 +164,12 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
col.prop(cam, "show_limits", text="Limits")
col.prop(cam, "show_mist", text="Mist")
col.prop(cam, "show_title_safe", text="Title Safe")
+ col.prop(cam, "show_sensor", text="Sensor")
col.prop(cam, "show_name", text="Name")
- col.prop_menu_enum(cam, "show_guide")
col = split.column()
+ col.prop_menu_enum(cam, "show_guide")
+ col.separator()
col.prop(cam, "draw_size", text="Size")
col.separator()
col.prop(cam, "show_passepartout", text="Passepartout")