[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