[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40262] branches/cycles: Cycles: tweaks to properties and nodes

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Sep 16 15:14:03 CEST 2011


Revision: 40262
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40262
Author:   blendix
Date:     2011-09-16 13:14:02 +0000 (Fri, 16 Sep 2011)
Log Message:
-----------
Cycles: tweaks to properties and nodes

* Passes renamed to samples
* Camera lens radius renamed to aperature size/blades/rotation
* Glass and fresnel nodes input is now index of refraction
* Glossy and velvet fresnel socket removed
* Mix/add closure node renamed to mix/add shader node
* Blend weight node added for shader mixing weights

There is some version patching code for reading existing files, but it's not
perfect, so shaders may work a bit different.

Modified Paths:
--------------
    branches/cycles/intern/cycles/app/cycles_test.cpp
    branches/cycles/intern/cycles/app/cycles_xml.cpp
    branches/cycles/intern/cycles/blender/addon/properties.py
    branches/cycles/intern/cycles/blender/addon/ui.py
    branches/cycles/intern/cycles/blender/blender_camera.cpp
    branches/cycles/intern/cycles/blender/blender_session.cpp
    branches/cycles/intern/cycles/blender/blender_shader.cpp
    branches/cycles/intern/cycles/blender/blender_sync.cpp
    branches/cycles/intern/cycles/device/device.cpp
    branches/cycles/intern/cycles/device/device.h
    branches/cycles/intern/cycles/device/device_cpu.cpp
    branches/cycles/intern/cycles/device/device_cuda.cpp
    branches/cycles/intern/cycles/device/device_network.cpp
    branches/cycles/intern/cycles/device/device_opencl.cpp
    branches/cycles/intern/cycles/kernel/kernel.cl
    branches/cycles/intern/cycles/kernel/kernel.cpp
    branches/cycles/intern/cycles/kernel/kernel.cu
    branches/cycles/intern/cycles/kernel/kernel.h
    branches/cycles/intern/cycles/kernel/kernel_camera.h
    branches/cycles/intern/cycles/kernel/kernel_film.h
    branches/cycles/intern/cycles/kernel/kernel_montecarlo.h
    branches/cycles/intern/cycles/kernel/kernel_path.h
    branches/cycles/intern/cycles/kernel/kernel_random.h
    branches/cycles/intern/cycles/kernel/kernel_types.h
    branches/cycles/intern/cycles/kernel/osl/nodes/CMakeLists.txt
    branches/cycles/intern/cycles/kernel/osl/nodes/node_environment_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_fresnel.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_image_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl
    branches/cycles/intern/cycles/kernel/svm/svm.h
    branches/cycles/intern/cycles/kernel/svm/svm_closure.h
    branches/cycles/intern/cycles/kernel/svm/svm_fresnel.h
    branches/cycles/intern/cycles/kernel/svm/svm_image.h
    branches/cycles/intern/cycles/kernel/svm/svm_types.h
    branches/cycles/intern/cycles/render/buffers.cpp
    branches/cycles/intern/cycles/render/buffers.h
    branches/cycles/intern/cycles/render/camera.cpp
    branches/cycles/intern/cycles/render/camera.h
    branches/cycles/intern/cycles/render/nodes.cpp
    branches/cycles/intern/cycles/render/nodes.h
    branches/cycles/intern/cycles/render/scene.h
    branches/cycles/intern/cycles/render/session.cpp
    branches/cycles/intern/cycles/render/session.h
    branches/cycles/intern/cycles/render/svm.cpp
    branches/cycles/intern/cycles/render/svm.h
    branches/cycles/intern/cycles/render/tile.cpp
    branches/cycles/intern/cycles/render/tile.h
    branches/cycles/intern/cycles/test/models/elephants.xml
    branches/cycles/intern/cycles/test/run.py
    branches/cycles/intern/cycles/test/test_camera/camera_dof.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_glass.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_glossy.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_mix.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_refraction.xml
    branches/cycles/intern/cycles/test/test_util.py
    branches/cycles/intern/cycles/util/util_progress.h
    branches/cycles/release/scripts/startup/bl_ui/properties_data_camera.py
    branches/cycles/source/blender/blenkernel/BKE_node.h
    branches/cycles/source/blender/blenkernel/intern/node.c
    branches/cycles/source/blender/blenloader/intern/readfile.c
    branches/cycles/source/blender/editors/interface/interface_node.c
    branches/cycles/source/blender/editors/space_node/node_draw.c
    branches/cycles/source/blender/editors/space_node/node_edit.c
    branches/cycles/source/blender/editors/space_node/node_header.c
    branches/cycles/source/blender/gpu/intern/gpu_shader_material.glsl
    branches/cycles/source/blender/makesdna/DNA_node_types.h
    branches/cycles/source/blender/makesrna/intern/rna_nodetree.c
    branches/cycles/source/blender/makesrna/intern/rna_nodetree_types.h
    branches/cycles/source/blender/nodes/CMakeLists.txt
    branches/cycles/source/blender/nodes/SHD_node.h
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_background.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_emission.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c

Added Paths:
-----------
    branches/cycles/intern/cycles/kernel/osl/nodes/node_blend_weight.osl
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c

Removed Paths:
-------------
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c
    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c

Modified: branches/cycles/intern/cycles/app/cycles_test.cpp
===================================================================
--- branches/cycles/intern/cycles/app/cycles_test.cpp	2011-09-16 13:00:09 UTC (rev 40261)
+++ branches/cycles/intern/cycles/app/cycles_test.cpp	2011-09-16 13:14:02 UTC (rev 40262)
@@ -66,26 +66,26 @@
 
 static void session_print_status()
 {
-	int pass;
-	double total_time, pass_time;
+	int sample;
+	double total_time, sample_time;
 	string status, substatus;
 
 	/* get status */
-	options.session->progress.get_pass(pass, total_time, pass_time);
+	options.session->progress.get_sample(sample, total_time, sample_time);
 	options.session->progress.get_status(status, substatus);
 
 	if(substatus != "")
 		status += ": " + substatus;
 
 	/* print status */
-	status = string_printf("Pass %d   %s", pass, status.c_str());
+	status = string_printf("Sample %d   %s", sample, status.c_str());
 	session_print(status);
 }
 
 static void session_init()
 {
 	options.session = new Session(options.session_params);
-	options.session->reset(options.width, options.height, options.session_params.passes);
+	options.session->reset(options.width, options.height, options.session_params.samples);
 	options.session->scene = options.scene;
 	
 	if(options.session_params.background && !options.quiet)
@@ -133,18 +133,18 @@
 	latency = (elapsed - last);
 	last = elapsed;
 
-	int pass;
-	double total_time, pass_time;
+	int sample;
+	double total_time, sample_time;
 	string status, substatus;
 
-	progress.get_pass(pass, total_time, pass_time);
+	progress.get_sample(sample, total_time, sample_time);
 	progress.get_status(status, substatus);
 
 	if(substatus != "")
 		status += ": " + substatus;
 
-	str = string_printf("latency: %.4f        pass: %d        total: %.4f        average: %.4f        %s",
-		latency, pass, total_time, pass_time, status.c_str());
+	str = string_printf("latency: %.4f        sample: %d        total: %.4f        average: %.4f        %s",
+		latency, sample, total_time, sample_time, status.c_str());
 
 	view_display_info(str.c_str());
 }
@@ -162,13 +162,13 @@
 	options.height= height;
 
 	if(options.session)
-		options.session->reset(options.width, options.height, options.session_params.passes);
+		options.session->reset(options.width, options.height, options.session_params.samples);
 }
 
 void keyboard(unsigned char key)
 {
 	if(key == 'r')
-		options.session->reset(options.width, options.height, options.session_params.passes);
+		options.session->reset(options.width, options.height, options.session_params.samples);
 	else if(key == 27) // escape
 		options.session->progress.set_cancel("Cancelled");
 }
@@ -220,7 +220,7 @@
 		"--shadingsys %s", &ssname, "Shading system to use: svm, osl",
 		"--background", &options.session_params.background, "Render in background, without user interface",
 		"--quiet", &options.quiet, "In background mode, don't print progress messages",
-		"--passes %d", &options.session_params.passes, "Number of passes to render",
+		"--samples %d", &options.session_params.samples, "Number of samples to render",
 		"--output %s", &options.session_params.output_path, "File path to write output image",
 		"--threads %d", &options.session_params.threads, "CPU Rendering Threads",
 		"--help", &help, "Print help message",
@@ -266,8 +266,8 @@
 		fprintf(stderr, "OSL shading system only works with CPU device\n");
 		exit(EXIT_FAILURE);
 	}
-	else if(options.session_params.passes < 0) {
-		fprintf(stderr, "Invalid number of passes: %d\n", options.session_params.passes);
+	else if(options.session_params.samples < 0) {
+		fprintf(stderr, "Invalid number of samples: %d\n", options.session_params.samples);
 		exit(EXIT_FAILURE);
 	}
 	else if(options.filepath == "") {

Modified: branches/cycles/intern/cycles/app/cycles_xml.cpp
===================================================================
--- branches/cycles/intern/cycles/app/cycles_xml.cpp	2011-09-16 13:00:09 UTC (rev 40261)
+++ branches/cycles/intern/cycles/app/cycles_xml.cpp	2011-09-16 13:14:02 UTC (rev 40262)
@@ -272,7 +272,7 @@
 
 	xml_read_float(&cam->nearclip, node, "nearclip");
 	xml_read_float(&cam->farclip, node, "farclip");
-	xml_read_float(&cam->lensradius, node, "lensradius"); // 0.5*focallength/fstop
+	xml_read_float(&cam->aperturesize, node, "aperturesize"); // 0.5*focallength/fstop
 	xml_read_float(&cam->focaldistance, node, "focaldistance");
 	xml_read_float(&cam->shutteropen, node, "shutteropen");
 	xml_read_float(&cam->shutterclose, node, "shutterclose");

Modified: branches/cycles/intern/cycles/blender/addon/properties.py
===================================================================
--- branches/cycles/intern/cycles/blender/addon/properties.py	2011-09-16 13:00:09 UTC (rev 40261)
+++ branches/cycles/intern/cycles/blender/addon/properties.py	2011-09-16 13:14:02 UTC (rev 40262)
@@ -19,6 +19,8 @@
 import bpy
 from bpy.props import *
 
+import math
+
 from cycles import enums
 
 class CyclesRenderSettings(bpy.types.PropertyGroup):
@@ -35,9 +37,9 @@
         cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering",
             items=enums.shading_systems, default="GPU_COMPATIBLE")
 
-        cls.passes = IntProperty(name="Passes", description="Number of passes to render",
+        cls.samples = IntProperty(name="Samples", description="Number of samples to render for each pixel",
             default=10, min=1, max=2147483647)
-        cls.preview_passes = IntProperty(name="Preview Passes", description="Number of passes to render in the viewport, unlimited if 0",
+        cls.preview_samples = IntProperty(name="Preview Samples", description="Number of samples to render in the viewport, unlimited if 0",
             default=0, min=0, max=2147483647)
         cls.preview_pause = BoolProperty(name="Pause Preview", description="Pause all viewport preview renders",
             default=False)
@@ -99,8 +101,12 @@
     def register(cls):
         bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles camera settings")
 
-        cls.lens_radius = FloatProperty(name="Lens radius", description="Lens radius for depth of field",
+        cls.aperture_size = FloatProperty(name="Aperture Size", description="Radius of the aperture for depth of field",
             default=0.0, min=0.0, max=10.0)
+        cls.aperture_blades = IntProperty(name="Aperture Blades", description="Number of blades in aperture for polygonal bokeh (need 3 or more)",
+            default=0, min=0, max=100)
+        cls.aperture_rotation = FloatProperty(name="Aperture Rotation", description="Rotation of blades in aperture",
+            default=0, soft_min=-math.pi, soft_max=math.pi, subtype='ANGLE')
     
     @classmethod
     def unregister(cls):

Modified: branches/cycles/intern/cycles/blender/addon/ui.py
===================================================================
--- branches/cycles/intern/cycles/blender/addon/ui.py	2011-09-16 13:00:09 UTC (rev 40261)
+++ branches/cycles/intern/cycles/blender/addon/ui.py	2011-09-16 13:14:02 UTC (rev 40262)
@@ -59,9 +59,9 @@
 
         col = split.column()
         sub = col.column(align=True)
-        sub.label(text="Passes:")
-        sub.prop(cscene, "passes", text="Render")
-        sub.prop(cscene, "preview_passes", text="Preview")
+        sub.label(text="Samples:")
+        sub.prop(cscene, "samples", text="Render")
+        sub.prop(cscene, "preview_samples", text="Preview")
 
         sub = col.column(align=True)
         sub.label("Tranparency:")
@@ -194,22 +194,39 @@
         col = split.column()
         col.prop(rd, "dither_intensity", text="Dither", slider=True)
 
-class Cycles_PT_camera(CyclesButtonsPanel, Panel):
-    bl_label = "Cycles"
+class CyclesCamera_PT_dof(CyclesButtonsPanel, Panel):
+    bl_label = "Depth of Field"
     bl_context = "data"
 
     @classmethod
     def poll(cls, context):
-        return context.camera
+        return context.camera and CyclesButtonsPanel.poll(context)
 
     def draw(self, context):
         layout = self.layout
 
-        camera = context.camera
-        ccamera = camera.cycles
+        cam = context.camera
+        ccam = cam.cycles
 
-        layout.prop(ccamera, "lens_radius")
+        split = layout.split()
 
+        col = split.column()
+        col.label("Focus:")
+        col.prop(cam, "dof_object", text="")
+
+        sub = col.row()
+        sub.active = cam.dof_object is None
+        sub.prop(cam, "dof_distance", text="Distance")
+
+        col = split.column()
+
+        col.label("Aperture:")
+        col.prop(ccam, "aperture_size", text="Size")
+
+        sub = col.column(align=True)
+        sub.prop(ccam, "aperture_blades", text="Blades")
+        sub.prop(ccam, "aperture_rotation", text="Rotation")
+
 class Cycles_PT_context_material(CyclesButtonsPanel, Panel):
     bl_label = "Surface"
     bl_context = "material"
@@ -550,7 +567,7 @@
         layout = self.layout
         layout.label("Color modification options go here.");
         layout.label("Ramp, brightness, contrast, saturation.")
-    
+
 def draw_device(self, context):
     scene = context.scene
     layout = self.layout

Modified: branches/cycles/intern/cycles/blender/blender_camera.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_camera.cpp	2011-09-16 13:00:09 UTC (rev 40261)
+++ branches/cycles/intern/cycles/blender/blender_camera.cpp	2011-09-16 13:14:02 UTC (rev 40262)
@@ -35,7 +35,10 @@
 	float ortho_scale;
 
 	float lens;
-	float lensradius;
+
+	float aperturesize;
+	uint apertureblades;
+	float aperturerotation;
 	float focaldistance;
 
 	float2 shift;
@@ -90,7 +93,9 @@
 		bcam->ortho_scale = b_camera.ortho_scale();
 
 		bcam->lens = b_camera.lens();
-		bcam->lensradius = RNA_float_get(&ccamera, "lens_radius");
+		bcam->aperturesize = RNA_float_get(&ccamera, "aperture_size");
+		bcam->apertureblades = RNA_int_get(&ccamera, "aperture_blades");
+		bcam->aperturerotation = RNA_float_get(&ccamera, "aperture_rotation");
 		bcam->focaldistance = blender_camera_focal_distance(b_ob, b_camera);
 
 		bcam->shift.x = b_camera.shift_x();
@@ -162,7 +167,9 @@
 	/* perspective */
 	cam->fov = 2.0f*atan(16.0f/bcam->lens/aspectratio);
 	cam->focaldistance = bcam->focaldistance;
-	cam->lensradius = bcam->lensradius;
+	cam->aperturesize = bcam->aperturesize;
+	cam->blades = bcam->apertureblades;

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list