| 
									
										
										
										
											2009-11-01 15:21:20 +00:00
										 |  |  | # ##### BEGIN GPL LICENSE BLOCK ##### | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  | #  modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  | #  as published by the Free Software Foundation; either version 2 | 
					
						
							|  |  |  | #  of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2009-11-03 07:23:02 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2009-11-01 15:21:20 +00:00
										 |  |  | #  This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | #  but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | #  GNU General Public License for more details. | 
					
						
							| 
									
										
										
										
											2009-11-03 07:23:02 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2009-11-01 15:21:20 +00:00
										 |  |  | #  You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | #  along with this program; if not, write to the Free Software Foundation, | 
					
						
							|  |  |  | #  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # ##### END GPL LICENSE BLOCK ##### | 
					
						
							| 
									
										
										
										
											2009-10-31 20:16:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | # <pep8 compliant> | 
					
						
							| 
									
										
										
										
											2009-05-08 18:17:57 +00:00
										 |  |  | import bpy | 
					
						
							| 
									
										
										
										
											2010-01-08 08:54:41 +00:00
										 |  |  | from rna_prop_ui import PropertyPanel | 
					
						
							| 
									
										
										
										
											2009-05-08 18:17:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  | narrowui = 180 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-14 13:35:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  | class LAMP_MT_sunsky_presets(bpy.types.Menu): | 
					
						
							|  |  |  |     bl_label = "Render Presets" | 
					
						
							|  |  |  |     preset_subdir = "sunsky" | 
					
						
							|  |  |  |     preset_operator = "script.python_file_run" | 
					
						
							|  |  |  |     draw = bpy.types.Menu.draw_preset | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-08 18:17:57 +00:00
										 |  |  | class DataButtonsPanel(bpy.types.Panel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_space_type = 'PROPERTIES' | 
					
						
							|  |  |  |     bl_region_type = 'WINDOW' | 
					
						
							|  |  |  |     bl_context = "data" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def poll(self, context): | 
					
						
							|  |  |  |         return context.lamp | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-07 11:42:13 +00:00
										 |  |  | class DATA_PT_preview(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Preview" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         self.layout.template_preview(context.lamp) | 
					
						
							| 
									
										
										
										
											2009-06-07 11:42:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-09 09:42:34 +00:00
										 |  |  | class DATA_PT_context_lamp(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "" | 
					
						
							|  |  |  |     bl_show_header = False | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ob = context.object | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							|  |  |  |         space = context.space_data | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         wide_ui = context.region.width > narrowui | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             split = layout.split(percentage=0.65) | 
					
						
							|  |  |  |             if ob: | 
					
						
							|  |  |  |                 split.template_ID(ob, "data") | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 split.separator() | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             elif lamp: | 
					
						
							|  |  |  |                 split.template_ID(space, "pin_id") | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 split.separator() | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2009-11-14 23:24:15 +00:00
										 |  |  |             if ob: | 
					
						
							|  |  |  |                 layout.template_ID(ob, "data") | 
					
						
							|  |  |  |             elif lamp: | 
					
						
							|  |  |  |                 layout.template_ID(space, "pin_id") | 
					
						
							| 
									
										
										
										
											2009-06-07 13:36:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-08 08:54:41 +00:00
										 |  |  | class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel): | 
					
						
							|  |  |  |     _context_path = "object.data" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-09 09:07:25 +00:00
										 |  |  | class DATA_PT_lamp(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Lamp" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         wide_ui = context.region.width > narrowui | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             layout.prop(lamp, "type", expand=True) | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             layout.prop(lamp, "type", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         col = split.column() | 
					
						
							|  |  |  |         sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "color", text="") | 
					
						
							|  |  |  |         sub.prop(lamp, "energy") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if lamp.type in ('POINT', 'SPOT'): | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             sub.label(text="Falloff:") | 
					
						
							|  |  |  |             sub.prop(lamp, "falloff_type", text="") | 
					
						
							|  |  |  |             sub.prop(lamp, "distance") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             if lamp.falloff_type == 'LINEAR_QUADRATIC_WEIGHTED': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.label(text="Attenuation Factors:") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 sub = col.column(align=True) | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 sub.prop(lamp, "linear_attenuation", slider=True, text="Linear") | 
					
						
							|  |  |  |                 sub.prop(lamp, "quadratic_attenuation", slider=True, text="Quadratic") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.prop(lamp, "sphere") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if lamp.type == 'AREA': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.prop(lamp, "distance") | 
					
						
							|  |  |  |             col.prop(lamp, "gamma") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.prop(lamp, "negative") | 
					
						
							|  |  |  |         col.prop(lamp, "layer", text="This Layer Only") | 
					
						
							|  |  |  |         col.prop(lamp, "specular") | 
					
						
							|  |  |  |         col.prop(lamp, "diffuse") | 
					
						
							| 
									
										
										
										
											2009-07-27 20:39:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-21 01:52:05 +00:00
										 |  |  | class DATA_PT_sunsky(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Sky & Atmosphere" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def poll(self, context): | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							|  |  |  |         return (lamp and lamp.type == 'SUN') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         lamp = context.lamp.sky | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         wide_ui = context.region.width > narrowui | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         row = layout.row(align=True) | 
					
						
							|  |  |  |         row.prop(lamp, "use_sky") | 
					
						
							|  |  |  |         row.menu("LAMP_MT_sunsky_presets", text="Presets") | 
					
						
							|  |  |  |         row.operator("lamp.sunsky_preset_add", text="Add") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         row = layout.row() | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         row.active = lamp.use_sky or lamp.use_atmosphere | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         row.prop(lamp, "atmosphere_turbidity", text="Turbidity") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         col = split.column() | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         col.active = lamp.use_sky | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.label(text="Blending:") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "sky_blend_type", text="") | 
					
						
							|  |  |  |         sub.prop(lamp, "sky_blend", text="Factor") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.label(text="Color Space:") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.row().prop(lamp, "sky_color_space", expand=True) | 
					
						
							|  |  |  |         sub.prop(lamp, "sky_exposure", text="Exposure") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             col = split.column() | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         col.active = lamp.use_sky | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.label(text="Horizon:") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "horizon_brightness", text="Brightness") | 
					
						
							|  |  |  |         sub.prop(lamp, "spread", text="Spread") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.label(text="Sun:") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "sun_brightness", text="Brightness") | 
					
						
							|  |  |  |         sub.prop(lamp, "sun_size", text="Size") | 
					
						
							|  |  |  |         sub.prop(lamp, "backscattered_light", slider=True, text="Back Light") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         layout.separator() | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         layout.prop(lamp, "use_atmosphere") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         col = split.column() | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         col.active = lamp.use_atmosphere | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.label(text="Intensity:") | 
					
						
							|  |  |  |         col.prop(lamp, "sun_intensity", text="Sun") | 
					
						
							|  |  |  |         col.prop(lamp, "atmosphere_distance_factor", text="Distance") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             col = split.column() | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  |         col.active = lamp.use_atmosphere | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.label(text="Scattering:") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         sub = col.column(align=True) | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "atmosphere_inscattering", slider=True, text="Inscattering") | 
					
						
							|  |  |  |         sub.prop(lamp, "atmosphere_extinction", slider=True, text="Extinction") | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-08 21:52:57 +00:00
										 |  |  | class DATA_PT_shadow(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Shadow" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def poll(self, context): | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  |         return (lamp and lamp.type in ('POINT', 'SUN', 'SPOT', 'AREA')) | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         wide_ui = context.region.width > narrowui | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             layout.prop(lamp, "shadow_method", expand=True) | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             layout.prop(lamp, "shadow_method", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if lamp.shadow_method != 'NOSHADOW': | 
					
						
							|  |  |  |             split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.prop(lamp, "shadow_color", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |             if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                 col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.prop(lamp, "shadow_layer", text="This Layer Only") | 
					
						
							|  |  |  |             col.prop(lamp, "only_shadow") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if lamp.shadow_method == 'RAY_SHADOW': | 
					
						
							|  |  |  |             col = layout.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.label(text="Sampling:") | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |             if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.row().prop(lamp, "shadow_ray_sampling_method", expand=True) | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             else: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.prop(lamp, "shadow_ray_sampling_method", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             if lamp.type in ('POINT', 'SUN', 'SPOT'): | 
					
						
							|  |  |  |                 split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.prop(lamp, "shadow_soft_size", text="Soft Size") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.prop(lamp, "shadow_ray_samples", text="Samples") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 if lamp.shadow_ray_sampling_method == 'ADAPTIVE_QMC': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                     col.prop(lamp, "shadow_adaptive_threshold", text="Threshold") | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |                 if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                     col = split.column() | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             elif lamp.type == 'AREA': | 
					
						
							|  |  |  |                 split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-14 13:35:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 if lamp.shape == 'SQUARE': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                     col.prop(lamp, "shadow_ray_samples_x", text="Samples") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 elif lamp.shape == 'RECTANGLE': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                     col.prop(lamp, "shadow_ray_samples_x", text="Samples X") | 
					
						
							|  |  |  |                     col.prop(lamp, "shadow_ray_samples_y", text="Samples Y") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 if lamp.shadow_ray_sampling_method == 'ADAPTIVE_QMC': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                     col.prop(lamp, "shadow_adaptive_threshold", text="Threshold") | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |                     if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                         col = split.column() | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 elif lamp.shadow_ray_sampling_method == 'CONSTANT_JITTERED': | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |                     if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                         col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                     col.prop(lamp, "umbra") | 
					
						
							|  |  |  |                     col.prop(lamp, "dither") | 
					
						
							|  |  |  |                     col.prop(lamp, "jitter") | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                 else: | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |                     if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                         col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-14 13:35:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         elif lamp.shadow_method == 'BUFFER_SHADOW': | 
					
						
							|  |  |  |             col = layout.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.label(text="Buffer Type:") | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |             if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.row().prop(lamp, "shadow_buffer_type", expand=True) | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             else: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.row().prop(lamp, "shadow_buffer_type", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             if lamp.shadow_buffer_type in ('REGULAR', 'HALFWAY', 'DEEP'): | 
					
						
							|  |  |  |                 split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.label(text="Filter Type:") | 
					
						
							|  |  |  |                 col.prop(lamp, "shadow_filter_type", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 sub = col.column(align=True) | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 sub.prop(lamp, "shadow_buffer_soft", text="Soft") | 
					
						
							|  |  |  |                 sub.prop(lamp, "shadow_buffer_bias", text="Bias") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |                 if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                     col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 col.label(text="Sample Buffers:") | 
					
						
							|  |  |  |                 col.prop(lamp, "shadow_sample_buffers", text="") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 sub = col.column(align=True) | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 sub.prop(lamp, "shadow_buffer_size", text="Size") | 
					
						
							|  |  |  |                 sub.prop(lamp, "shadow_buffer_samples", text="Samples") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |                 if lamp.shadow_buffer_type == 'DEEP': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                     col.prop(lamp, "compression_threshold") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             elif lamp.shadow_buffer_type == 'IRREGULAR': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |                 layout.prop(lamp, "shadow_buffer_bias", text="Bias") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.prop(lamp, "auto_clip_start", text="Autoclip Start") | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |             sub.active = not lamp.auto_clip_start | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             sub.prop(lamp, "shadow_buffer_clip_start", text="Clip Start") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |             if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |                 col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.prop(lamp, "auto_clip_end", text="Autoclip End") | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |             sub.active = not lamp.auto_clip_end | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             sub.prop(lamp, "shadow_buffer_clip_end", text=" Clip End") | 
					
						
							| 
									
										
										
										
											2009-05-10 12:12:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-30 13:56:39 +00:00
										 |  |  | class DATA_PT_area(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Area Shape" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def poll(self, context): | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							|  |  |  |         return (lamp and lamp.type == 'AREA') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         col = split.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         col.row().prop(lamp, "shape", expand=True) | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         sub = col.column(align=True) | 
					
						
							|  |  |  |         if (lamp.shape == 'SQUARE'): | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             sub.prop(lamp, "size") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         elif (lamp.shape == 'RECTANGLE'): | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             sub.prop(lamp, "size", text="Size X") | 
					
						
							|  |  |  |             sub.prop(lamp, "size_y", text="Size Y") | 
					
						
							| 
									
										
										
										
											2009-07-30 13:56:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-08 21:52:57 +00:00
										 |  |  | class DATA_PT_spot(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Spot Shape" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def poll(self, context): | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							|  |  |  |         return (lamp and lamp.type == 'SPOT') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         wide_ui = context.region.width > narrowui | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         split = layout.split() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         col = split.column() | 
					
						
							|  |  |  |         sub = col.column() | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "spot_size", text="Size") | 
					
						
							|  |  |  |         sub.prop(lamp, "spot_blend", text="Blend", slider=True) | 
					
						
							|  |  |  |         col.prop(lamp, "square") | 
					
						
							| 
									
										
										
										
											2010-01-25 14:47:32 +00:00
										 |  |  |         col.prop(lamp, "show_cone") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 13:26:51 +00:00
										 |  |  |         if wide_ui: | 
					
						
							| 
									
										
										
										
											2009-11-12 21:44:35 +00:00
										 |  |  |             col = split.column() | 
					
						
							|  |  |  |         else: | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             col.separator() | 
					
						
							|  |  |  |         col.prop(lamp, "halo") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         sub = col.column(align=True) | 
					
						
							|  |  |  |         sub.active = lamp.halo | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |         sub.prop(lamp, "halo_intensity", text="Intensity") | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         if lamp.shadow_method == 'BUFFER_SHADOW': | 
					
						
							| 
									
										
										
										
											2009-11-23 00:27:30 +00:00
										 |  |  |             sub.prop(lamp, "halo_step", text="Step") | 
					
						
							| 
									
										
										
										
											2009-05-08 18:17:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 23:35:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-03 00:17:35 +00:00
										 |  |  | class DATA_PT_falloff_curve(DataButtonsPanel): | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     bl_label = "Falloff Curve" | 
					
						
							|  |  |  |     bl_default_closed = True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def poll(self, context): | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							| 
									
										
										
										
											2009-06-03 00:17:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         return (lamp and lamp.type in ('POINT', 'SPOT') and lamp.falloff_type == 'CUSTOM_CURVE') | 
					
						
							| 
									
										
										
										
											2009-06-03 00:17:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         lamp = context.lamp | 
					
						
							| 
									
										
										
										
											2009-06-03 00:17:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-31 19:31:45 +00:00
										 |  |  |         self.layout.template_curve_mapping(lamp, "falloff_curve") | 
					
						
							| 
									
										
										
										
											2009-06-03 00:17:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-08 08:54:41 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-07 13:56:36 +00:00
										 |  |  | bpy.types.register(LAMP_MT_sunsky_presets) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-09 09:42:34 +00:00
										 |  |  | bpy.types.register(DATA_PT_context_lamp) | 
					
						
							| 
									
										
										
										
											2009-06-07 11:42:13 +00:00
										 |  |  | bpy.types.register(DATA_PT_preview) | 
					
						
							| 
									
										
										
										
											2009-05-08 18:17:57 +00:00
										 |  |  | bpy.types.register(DATA_PT_lamp) | 
					
						
							| 
									
										
										
										
											2009-06-18 14:20:25 +00:00
										 |  |  | bpy.types.register(DATA_PT_falloff_curve) | 
					
						
							| 
									
										
										
										
											2009-07-30 13:56:39 +00:00
										 |  |  | bpy.types.register(DATA_PT_area) | 
					
						
							| 
									
										
										
										
											2009-07-21 01:52:05 +00:00
										 |  |  | bpy.types.register(DATA_PT_spot) | 
					
						
							|  |  |  | bpy.types.register(DATA_PT_shadow) | 
					
						
							| 
									
										
										
										
											2009-08-18 12:58:51 +00:00
										 |  |  | bpy.types.register(DATA_PT_sunsky) | 
					
						
							| 
									
										
										
										
											2010-01-08 08:54:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | bpy.types.register(DATA_PT_custom_props_lamp) |