[Bf-blender-cvs] [ecb8796] temp-cycles-microdisplacement: Add preview dice rate for displacement

Mai Lavelle noreply at git.blender.org
Mon Apr 11 14:54:22 CEST 2016


Commit: ecb8796264b235130ed9fa8b35fabdeca1d7e5a3
Author: Mai Lavelle
Date:   Tue Dec 1 08:18:03 2015 -0500
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rBecb8796264b235130ed9fa8b35fabdeca1d7e5a3

Add preview dice rate for displacement

===================================================================

M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_mesh.cpp

===================================================================

diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 563c470..7bb757c 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -949,6 +949,17 @@ class CyclesMeshSettings(bpy.types.PropertyGroup):
                 min=0.1, max=1000.0,
                 default=1.0,
                 )
+        cls.preview_dicing_rate = FloatProperty(
+                name="Preview Dicing Rate",
+                description="Width of a micropolygon in pixels during preview render",
+                min=0.1, max=1000.0,
+                default=8.0,
+                )
+        cls.preview_displacement = BoolProperty(
+                name="Preview Displacement",
+                description="Use subdivision in preview render",
+                default=True,
+                )
 
     @classmethod
     def unregister(cls):
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index f4b49ba..0689f5b 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -696,6 +696,9 @@ class Cycles_PT_mesh_displacement(CyclesButtonsPanel, Panel):
         if cdata.subdivision_type != 'NONE':
             sub.label(text="Subdivision Rate:")
             sub.prop(cdata, "dicing_rate", text="Render")
+            preview_sub = sub.row(align=True)
+            preview_sub.prop(cdata, "preview_dicing_rate", text="Preview")
+            preview_sub.prop(cdata, "preview_displacement", text="", icon="RESTRICT_VIEW_OFF")
 
 class CyclesObject_PT_motion_blur(CyclesButtonsPanel, Panel):
     bl_label = "Motion Blur"
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 52bf011..7554e3f 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -660,13 +660,14 @@ static void create_subd_mesh(Scene *scene,
                              BL::Object b_ob,
                              BL::Mesh& b_mesh,
                              PointerRNA *cmesh,
-                             const vector<uint>& used_shaders)
+                             const vector<uint>& used_shaders,
+                             bool preview)
 {
 	Mesh *basemesh = new Mesh();
 	create_mesh(scene, basemesh, b_mesh, used_shaders);
 
 	SubdParams sdparams(mesh, used_shaders[0], true, false);
-	sdparams.dicing_rate = RNA_float_get(cmesh, "dicing_rate");
+	sdparams.dicing_rate = preview ? RNA_float_get(cmesh, "preview_dicing_rate") : RNA_float_get(cmesh, "dicing_rate");
 
 	scene->camera->update();
 	sdparams.camera = scene->camera;
@@ -784,8 +785,11 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
 
 		if(b_mesh) {
 			if(render_layer.use_surfaces && !hide_tris) {
-				if(cmesh.data && experimental && RNA_enum_get(&cmesh, "subdivision_type") != 0)
-					create_subd_mesh(scene, mesh, b_ob, b_mesh, &cmesh, used_shaders);
+				if(cmesh.data && experimental && RNA_enum_get(&cmesh, "subdivision_type") != 0 &&
+						(!preview || RNA_boolean_get(&cmesh, "preview_displacement")))
+				{
+					create_subd_mesh(scene, mesh, b_ob, b_mesh, &cmesh, used_shaders, preview);
+				}
 				else
 					create_mesh(scene, mesh, b_mesh, used_shaders);




More information about the Bf-blender-cvs mailing list