[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21561] branches/blender2.5/blender: 2.5: Render

Brecht Van Lommel brecht at blender.org
Mon Jul 13 21:09:13 CEST 2009


Revision: 21561
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21561
Author:   blendix
Date:     2009-07-13 21:09:13 +0200 (Mon, 13 Jul 2009)

Log Message:
-----------
2.5: Render

* UI layout for scene buttons has quite some changes, I tried to
  better organize things according to the pipeline, and also showing
  important properties by default, and collapsing less important ones.

Some changes compared to 2.4x:
* Panorama is now a Camera property.
* Sequence and Compositing are now enabled by default, but will only
  do something when there is a node tree using nodes, or a strip in the
  sequence editor.
* Enabling Full Sample now automatically enables Save Buffers too.
* Stamp option to include info in file is removed, it now simply always
  does this if one of the stamp infos is enabled.
* Xvid, H.264 and Ogg Theora are now directly in the file format menu,
  but still using FFMPEG. Unfortunately Ogg is broken at the moment
  (also in 2.4x), so that's disabled. And Xvid crashes on 64bit linux,
  maybe solvable by upgrading extern/xvidcore/, using ubuntu libs makes
  it work.
* Organized file format menu by image/movie types.

Added:
* Render layers RNA wrapped, operatorized, layouted.
* FFMPEG format/codec options are now working.

Defaults changed:
* Compositing & Sequencer enabled.
* Tiles set to 8x8.
* Time/Date/Frame/Scene/Camera/Filename enabled for stamp.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_data_camera.py
    branches/blender2.5/blender/release/ui/buttons_scene.py
    branches/blender2.5/blender/source/blender/blenkernel/BKE_writeffmpeg.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/image.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/sequence.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/writeavi.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/writeffmpeg.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
    branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_intern.h
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_ops.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
    branches/blender2.5/blender/source/blender/editors/space_file/writeimage.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_camera_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
    branches/blender2.5/blender/source/blender/makesrna/SConscript
    branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt
    branches/blender2.5/blender/source/blender/makesrna/intern/Makefile
    branches/blender2.5/blender/source/blender/makesrna/intern/SConscript
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_camera.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c
    branches/blender2.5/blender/source/blender/render/intern/source/initrender.c
    branches/blender2.5/blender/source/blender/render/intern/source/pipeline.c

Modified: branches/blender2.5/blender/release/ui/buttons_data_camera.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_camera.py	2009-07-13 18:47:08 UTC (rev 21560)
+++ branches/blender2.5/blender/release/ui/buttons_data_camera.py	2009-07-13 19:09:13 UTC (rev 21561)
@@ -38,7 +38,6 @@
 		
 		cam = context.camera
 
-		layout.itemS()
 		layout.itemR(cam, "type", expand=True)
 			
 		row = layout.row(align=True)
@@ -51,6 +50,10 @@
 
 		elif cam.type == 'ORTHO':
 			row.itemR(cam, "ortho_scale")
+
+		split = layout.split()
+		split.itemR(cam, "panorama");
+		split.itemL()
 				
 		split = layout.split()
 			
@@ -64,9 +67,13 @@
 		sub.itemR(cam, "clip_start", text="Start")
 		sub.itemR(cam, "clip_end", text="End")
 			
-		row = layout.row()
-		row.itemR(cam, "dof_object")
-		row.itemR(cam, "dof_distance")
+		split = layout.split()
+		col = split.column()
+		col.itemL(text="Depth of Field:")
+		col.itemR(cam, "dof_object", text="")
+		col = split.column()
+		col.itemL()
+		col.itemR(cam, "dof_distance", text="Distance")
 		
 class DATA_PT_camera_display(DataButtonsPanel):
 	__idname__ = "DATA_PT_camera_display"

Modified: branches/blender2.5/blender/release/ui/buttons_scene.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_scene.py	2009-07-13 18:47:08 UTC (rev 21560)
+++ branches/blender2.5/blender/release/ui/buttons_scene.py	2009-07-13 19:09:13 UTC (rev 21561)
@@ -6,6 +6,103 @@
 	__region_type__ = "WINDOW"
 	__context__ = "scene"
 
+class RENDER_PT_render(RenderButtonsPanel):
+	__label__ = "Render"
+
+	def draw(self, context):
+		layout = self.layout
+		rd = context.scene.render_data
+
+		row = layout.row()
+		row.itemO("SCREEN_OT_render", text="Image", icon='ICON_IMAGE_COL')
+		row.item_booleanO("SCREEN_OT_render", "anim", True, text="Animation", icon='ICON_SEQUENCE')
+
+		layout.itemR(rd, "display_mode", text="Display")
+
+class RENDER_PT_layers(RenderButtonsPanel):
+	__label__ = "Layers"
+	__default_closed__ = True
+
+	def draw(self, context):
+		layout = self.layout
+		scene = context.scene
+		rd = scene.render_data
+
+		split = layout.split()
+		split.itemL(text="Scene:")
+		split.column().itemR(scene, "visible_layers", text="")
+
+		row = layout.row()
+		row.template_list(rd, "layers", rd, "active_layer_index", rows=2)
+
+		col = row.column(align=True)
+		col.itemO("SCENE_OT_render_layer_add", icon="ICON_ZOOMIN", text="")
+		col.itemO("SCENE_OT_render_layer_remove", icon="ICON_ZOOMOUT", text="")
+
+		rl = rd.layers[rd.active_layer_index]
+
+		split = layout.split()
+		split.itemL(text="Layers:")
+		split.column().itemR(rl, "visible_layers", text="")
+
+		layout.itemR(rl, "light_override", text="Light")
+		layout.itemR(rl, "material_override", text="Material")
+
+		split = layout.split()
+
+		col = split.column()
+		col.itemR(rl, "zmask")
+		row = col.row()
+		row.itemR(rl, "zmask_negate", text="Negate")
+		row.active = rl.zmask
+		col.itemR(rl, "all_z")
+
+		col = split.column()
+		col.itemR(rl, "solid")
+		col.itemR(rl, "halo")
+		col.itemR(rl, "ztransp")
+
+		col = split.column()
+		col.itemR(rl, "sky")
+		col.itemR(rl, "edge")
+		col.itemR(rl, "strand")
+
+		if rl.zmask:
+			split = layout.split()
+			split.itemL(text="Zmask Layers:")
+			split.column().itemR(rl, "zmask_layers", text="")
+
+		split = layout.split()
+		col = split.column()
+		col.itemL(text="Passes:")
+		col.itemR(rl, "pass_combined")
+		col.itemR(rl, "pass_z")
+		col.itemR(rl, "pass_vector")
+		col.itemR(rl, "pass_normal")
+		col.itemR(rl, "pass_uv")
+		col.itemR(rl, "pass_mist")
+		col.itemR(rl, "pass_object_index")
+
+		col = split.column()
+		col.itemL()
+		col.itemR(rl, "pass_color")
+		col.itemR(rl, "pass_diffuse")
+		row = col.row()
+		row.itemR(rl, "pass_specular")
+		row.itemR(rl, "pass_specular_exclude", text="", icon="ICON_DOT")
+		row = col.row()
+		row.itemR(rl, "pass_shadow")
+		row.itemR(rl, "pass_shadow_exclude", text="", icon="ICON_DOT")
+		row = col.row()
+		row.itemR(rl, "pass_ao")
+		row.itemR(rl, "pass_ao_exclude", text="", icon="ICON_DOT")
+		row = col.row()
+		row.itemR(rl, "pass_reflection")
+		row.itemR(rl, "pass_reflection_exclude", text="", icon="ICON_DOT")
+		row = col.row()
+		row.itemR(rl, "pass_refraction")
+		row.itemR(rl, "pass_refraction_exclude", text="", icon="ICON_DOT")
+
 class RENDER_PT_shading(RenderButtonsPanel):
 	__label__ = "Shading"
 
@@ -15,19 +112,83 @@
 		
 		split = layout.split()
 		
-		sub = split.column()
-		sub.itemR(rd, "render_shadows", text="Shadows")
-		sub.itemR(rd, "render_sss", text="Subsurface Scattering")
-		sub.itemR(rd, "render_envmaps", text="Environment Map")
-		#	sub.itemR(rd, "render_radiosity", text="Radio")
+		col = split.column()
+		col.itemR(rd, "render_shadows", text="Shadows")
+		col.itemR(rd, "render_sss", text="Subsurface Scattering")
+		col.itemR(rd, "render_envmaps", text="Environment Map")
 		
 		col = split.column()
 		col.itemR(rd, "render_raytracing", text="Ray Tracing")
+		row = col.row()
+		row.active = rd.render_raytracing
+		row.itemR(rd, "octree_resolution", text="Octree")
+		col.itemR(rd, "alpha_mode", text="Alpha")
+
+class RENDER_PT_performance(RenderButtonsPanel):
+	__label__ = "Performance"
+	__default_closed__ = True
+
+	def draw(self, context):
+		layout = self.layout
+		rd = context.scene.render_data
+
+		split = layout.split()
+		
+		col = split.column(align=True)
+		col.itemL(text="Threads:")
+		col.row().itemR(rd, "threads_mode", expand=True)
 		colsub = col.column()
-		colsub.active = rd.render_raytracing
-		colsub.itemR(rd, "octree_resolution", text="Octree")
-		col.itemR(rd, "dither_intensity", text="Dither", slider=True)
+		colsub.enabled = rd.threads_mode == 'THREADS_FIXED'
+		colsub.itemR(rd, "threads")
+
+		col = split.column()
 		
+		sub = col.column(align=True)
+		sub.itemL(text="Tiles:")
+		sub.itemR(rd, "parts_x", text="X")
+		sub.itemR(rd, "parts_y", text="Y")
+
+		split = layout.split()
+
+		col = split.column()
+		col.itemL(text="Memory:")
+		row = col.row()
+		row.itemR(rd, "save_buffers")
+		row.enabled = not rd.full_sample
+
+		col = split.column()
+		col.itemL()
+		col.itemR(rd, "free_image_textures")
+		col.active = rd.use_compositing
+
+class RENDER_PT_post_processing(RenderButtonsPanel):
+	__label__ = "Post Processing"
+	__default_closed__ = True
+
+	def draw(self, context):
+		layout = self.layout
+		rd = context.scene.render_data
+
+		split = layout.split()
+
+		col = split.column()
+		col.itemR(rd, "use_compositing")
+		col.itemR(rd, "use_sequencer")
+
+		col = split.column()
+		row = col.row()
+		row.itemR(rd, "fields", text="Fields")
+		rowsub = row.row()
+		rowsub.active = rd.fields
+		rowsub.itemR(rd, "fields_still", text="Still")
+		rowsub = col.row()
+		rowsub.active = rd.fields
+		rowsub.itemR(rd, "field_order", expand=True)
+
+		split = layout.split()
+		split.itemL()
+		split.itemR(rd, "dither_intensity", text="Dither", slider=True)
+		
 class RENDER_PT_output(RenderButtonsPanel):
 	__label__ = "Output"
 
@@ -35,97 +196,116 @@
 		layout = self.layout
 		rd = context.scene.render_data
 		
-		layout.itemR(rd, "display_mode", text="Display")
-		
-		layout.itemR(rd, "output_path")
-		
+		layout.itemR(rd, "output_path", text="")
+
 		split = layout.split()
-		
 		col = split.column()
-		col.itemR(rd, "file_extensions")		
-		col.itemR(rd, "fields", text="Fields")
-		colsub = col.column()
-		colsub.active = rd.fields
-		colsub.itemR(rd, "fields_still", text="Still")
-		colsub.row().itemR(rd, "field_order", expand=True)
-		
-		col = split.column()
-		col.itemR(rd, "color_mode")
-		col.itemR(rd, "alpha_mode")
-		col.itemL(text="Distributed Rendering:")
 		col.itemR(rd, "placeholders")
 		col.itemR(rd, "no_overwrite")
-		
-		layout.itemR(rd, "file_format", text="Format")
-		
-		split = layout.split()
-		
+
 		col = split.column()
-		
+		col.itemR(rd, "file_format", text="")
+		col.itemR(rd, "file_extensions")		
+
 		if rd.file_format in ('AVIJPEG', 'JPEG'):
-			col.itemR(rd, "quality", slider=True)
+			split = layout.split()
+			split.itemR(rd, "color_mode", text="Color")
+			split.itemR(rd, "quality", slider=True)
 			
 		elif rd.file_format == 'OPENEXR':
+			split = layout.split()
+			col = split.column()
+			col.itemR(rd, "color_mode", text="Color")
 			col.itemR(rd, "exr_codec")
+
+			subsplit = split.split()
+			col = subsplit.column()
 			col.itemR(rd, "exr_half")
-			col = split.column()
 			col.itemR(rd, "exr_zbuf")
+			col = subsplit.column()
 			col.itemR(rd, "exr_preview")
 		
 		elif rd.file_format == 'JPEG2000':
-			row = layout.row()
-			row.itemR(rd, "jpeg_preset")
 			split = layout.split()
 			col = split.column()
+			col.itemR(rd, "color_mode", text="Color")
 			col.itemL(text="Depth:")
 			col.row().itemR(rd, "jpeg_depth", expand=True)
+
 			col = split.column()
+			col.itemR(rd, "jpeg_preset", text="")
 			col.itemR(rd, "jpeg_ycc")
 			col.itemR(rd, "exr_preview")
 			
 		elif rd.file_format in ('CINEON', 'DPX'):
+			split = layout.split()
+			col = split.column()
+			col.itemR(rd, "color_mode", text="Color")
 			col.itemR(rd, "cineon_log", text="Convert to Log")
-			colsub = col.column()
-			colsub.active = rd.cineon_log
-			colsub.itemR(rd, "cineon_black", text="Black")
-			colsub.itemR(rd, "cineon_white", text="White")
-			colsub.itemR(rd, "cineon_gamma", text="Gamma")
+
+			col = split.column(align=True)
+			col.active = rd.cineon_log
+			col.itemR(rd, "cineon_black", text="Black")
+			col.itemR(rd, "cineon_white", text="White")
+			col.itemR(rd, "cineon_gamma", text="Gamma")
 			
 		elif rd.file_format == 'TIFF':
-			col.itemR(rd, "tiff_bit")
-		
-		elif rd.file_format == 'FFMPEG':
-			#row = layout.row()
-			#row.itemR(rd, "ffmpeg_format")
-			#row.itemR(rd, "ffmpeg_codec")
 			split = layout.split()
+			split.itemR(rd, "color_mode", text="Color")
+			split.itemR(rd, "tiff_bit")
 		
-			col = split.column()
-			col.itemR(rd, "ffmpeg_video_bitrate")
-			col.itemL(text="Rate:")
-			col.itemR(rd, "ffmpeg_minrate", text="Minimum")
-			col.itemR(rd, "ffmpeg_maxrate", text="Maximum")
-			col.itemR(rd, "ffmpeg_buffersize", text="Buffer")
-			
-			col = split.column()
-			col.itemR(rd, "ffmpeg_gopsize")
-			col.itemR(rd, "ffmpeg_autosplit")
-			col.itemL(text="Mux:")
-			col.itemR(rd, "ffmpeg_muxrate", text="Rate")
-			col.itemR(rd, "ffmpeg_packetsize", text="Packet Size")
-			
-			row = layout.row()
-			row.itemL(text="Audio:")
-			row = layout.row()
-			#row.itemR(rd, "ffmpeg_audio_codec")
-			
+		else:
 			split = layout.split()

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list