[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41723] trunk/blender: Dynamic Paint merge :
Miika Hamalainen
miika.hamalainen at kolumbus.fi
Thu Nov 10 11:24:35 CET 2011
Revision: 41723
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41723
Author: miikah
Date: 2011-11-10 10:24:34 +0000 (Thu, 10 Nov 2011)
Log Message:
-----------
Dynamic Paint merge:
Commit Dynamic Paint from "soc-2011-carrot" branch into trunk.
End-user documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Simulation/Dynamic_Paint
GSoC wiki page:
http://wiki.blender.org/index.php/User:MiikaH/GSoC-2011-DynamicPaint
Modified Paths:
--------------
trunk/blender/release/datafiles/blender_icons.png
trunk/blender/release/scripts/startup/bl_ui/__init__.py
trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
trunk/blender/release/scripts/startup/bl_ui/properties_physics_common.py
trunk/blender/release/scripts/startup/bl_ui/space_time.py
trunk/blender/source/blender/CMakeLists.txt
trunk/blender/source/blender/blenkernel/BKE_bvhutils.h
trunk/blender/source/blender/blenkernel/BKE_customdata.h
trunk/blender/source/blender/blenkernel/BKE_pointcache.h
trunk/blender/source/blender/blenkernel/CMakeLists.txt
trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
trunk/blender/source/blender/blenkernel/intern/bvhutils.c
trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
trunk/blender/source/blender/blenkernel/intern/customdata.c
trunk/blender/source/blender/blenkernel/intern/particle.c
trunk/blender/source/blender/blenkernel/intern/pointcache.c
trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
trunk/blender/source/blender/blenlib/BLI_math_geom.h
trunk/blender/source/blender/blenlib/BLI_threads.h
trunk/blender/source/blender/blenlib/intern/math_geom.c
trunk/blender/source/blender/blenlib/intern/threads.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/blenloader/intern/writefile.c
trunk/blender/source/blender/editors/datafiles/blender_icons.png.c
trunk/blender/source/blender/editors/include/ED_mesh.h
trunk/blender/source/blender/editors/include/UI_icons.h
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/editors/mesh/mesh_data.c
trunk/blender/source/blender/editors/physics/CMakeLists.txt
trunk/blender/source/blender/editors/physics/physics_intern.h
trunk/blender/source/blender/editors/physics/physics_ops.c
trunk/blender/source/blender/editors/space_buttons/buttons_context.c
trunk/blender/source/blender/editors/space_outliner/outliner_draw.c
trunk/blender/source/blender/editors/space_time/space_time.c
trunk/blender/source/blender/editors/space_view3d/drawmesh.c
trunk/blender/source/blender/editors/space_view3d/drawobject.c
trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
trunk/blender/source/blender/makesdna/DNA_modifier_types.h
trunk/blender/source/blender/makesdna/DNA_object_force.h
trunk/blender/source/blender/makesdna/DNA_space_types.h
trunk/blender/source/blender/makesdna/intern/makesdna.c
trunk/blender/source/blender/makesrna/RNA_access.h
trunk/blender/source/blender/makesrna/RNA_enum_types.h
trunk/blender/source/blender/makesrna/intern/CMakeLists.txt
trunk/blender/source/blender/makesrna/intern/makesrna.c
trunk/blender/source/blender/makesrna/intern/rna_internal.h
trunk/blender/source/blender/makesrna/intern/rna_modifier.c
trunk/blender/source/blender/makesrna/intern/rna_object_force.c
trunk/blender/source/blender/makesrna/intern/rna_space.c
trunk/blender/source/blender/modifiers/CMakeLists.txt
trunk/blender/source/blender/modifiers/MOD_modifiertypes.h
trunk/blender/source/blender/modifiers/intern/MOD_util.c
trunk/blender/source/blender/modifiers/intern/MOD_util.h
trunk/blender/source/blender/modifiers/intern/MOD_uvproject.c
trunk/blender/source/blender/modifiers/intern/MOD_wave.c
trunk/blender/source/blender/nodes/shader/node_shader_util.c
trunk/blender/source/blender/nodes/shader/node_shader_util.h
trunk/blender/source/blender/nodes/shader/nodes/node_shader_geom.c
trunk/blender/source/blender/render/extern/include/RE_render_ext.h
trunk/blender/source/blender/render/extern/include/RE_shader_ext.h
trunk/blender/source/blender/render/intern/include/pointdensity.h
trunk/blender/source/blender/render/intern/include/texture.h
trunk/blender/source/blender/render/intern/include/voxeldata.h
trunk/blender/source/blender/render/intern/source/convertblender.c
trunk/blender/source/blender/render/intern/source/pointdensity.c
trunk/blender/source/blender/render/intern/source/render_texture.c
trunk/blender/source/blender/render/intern/source/shadeinput.c
trunk/blender/source/blender/render/intern/source/shadeoutput.c
trunk/blender/source/blender/render/intern/source/volumetric.c
trunk/blender/source/blender/render/intern/source/voxeldata.c
trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c
Added Paths:
-----------
trunk/blender/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
trunk/blender/source/blender/blenkernel/BKE_dynamicpaint.h
trunk/blender/source/blender/blenkernel/intern/dynamicpaint.c
trunk/blender/source/blender/editors/physics/dynamicpaint_ops.c
trunk/blender/source/blender/makesdna/DNA_dynamicpaint_types.h
trunk/blender/source/blender/makesrna/intern/rna_dynamicpaint.c
trunk/blender/source/blender/modifiers/intern/MOD_dynamicpaint.c
Modified: trunk/blender/release/datafiles/blender_icons.png
===================================================================
(Binary files differ)
Modified: trunk/blender/release/scripts/startup/bl_ui/__init__.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/__init__.py 2011-11-10 09:29:03 UTC (rev 41722)
+++ trunk/blender/release/scripts/startup/bl_ui/__init__.py 2011-11-10 10:24:34 UTC (rev 41723)
@@ -44,6 +44,7 @@
"properties_particle",
"properties_physics_cloth",
"properties_physics_common",
+ "properties_physics_dynamicpaint",
"properties_physics_field",
"properties_physics_fluid",
"properties_physics_smoke",
Modified: trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py 2011-11-10 09:29:03 UTC (rev 41722)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py 2011-11-10 10:24:34 UTC (rev 41723)
@@ -230,6 +230,9 @@
row.prop(md, "mid_level")
row.prop(md, "strength")
+ def DYNAMIC_PAINT(self, layout, ob, md):
+ layout.label(text="Settings can be found inside the Physics context")
+
def EDGE_SPLIT(self, layout, ob, md):
split = layout.split()
Modified: trunk/blender/release/scripts/startup/bl_ui/properties_physics_common.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_physics_common.py 2011-11-10 09:29:03 UTC (rev 41722)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_physics_common.py 2011-11-10 10:24:34 UTC (rev 41723)
@@ -65,6 +65,7 @@
if(ob.type == 'MESH'):
physics_add(self, col, context.collision, "Collision", 'COLLISION', 'MOD_PHYSICS', False)
physics_add(self, col, context.cloth, "Cloth", 'CLOTH', 'MOD_CLOTH', True)
+ physics_add(self, col, context.dynamic_paint, "Dynamic Paint", 'DYNAMIC_PAINT', 'MOD_DYNAMICPAINT', True)
col = split.column()
@@ -106,7 +107,7 @@
layout.label(text=cache.info)
else:
- if cachetype == 'SMOKE':
+ if cachetype in {'SMOKE', 'DYNAMIC_PAINT'}:
if not bpy.data.is_saved:
layout.label(text="Cache is disabled until the file is saved")
layout.enabled = False
@@ -118,17 +119,17 @@
row = layout.row(align=True)
- if cachetype != 'PSYS':
+ if cachetype not in {'PSYS', 'DYNAMIC_PAINT'}:
row.enabled = enabled
row.prop(cache, "frame_start")
row.prop(cache, "frame_end")
- if cachetype not in {'SMOKE', 'CLOTH'}:
+ if cachetype not in {'SMOKE', 'CLOTH', 'DYNAMIC_PAINT'}:
row.prop(cache, "frame_step")
row.prop(cache, "use_quick_cache")
if cachetype != 'SMOKE':
layout.label(text=cache.info)
- if cachetype != 'SMOKE':
+ if cachetype not in {'SMOKE', 'DYNAMIC_PAINT'}:
split = layout.split()
split.enabled = enabled and bpy.data.is_saved
Added: trunk/blender/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py (rev 0)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py 2011-11-10 10:24:34 UTC (rev 41723)
@@ -0,0 +1,497 @@
+# ##### 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.
+#
+# 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.
+#
+# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+import bpy
+
+from bl_ui.properties_physics_common import (
+ point_cache_ui,
+ effector_weights_ui,
+ )
+
+class PhysicButtonsPanel():
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
+ bl_context = "physics"
+
+ @classmethod
+ def poll(cls, context):
+ ob = context.object
+ rd = context.scene.render
+ return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.dynamic_paint)
+
+
+class PHYSICS_PT_dynamic_paint(PhysicButtonsPanel, bpy.types.Panel):
+ bl_label = "Dynamic Paint"
+
+ def draw(self, context):
+ layout = self.layout
+
+ md = context.dynamic_paint
+ ob = context.object
+
+ if md:
+ layout.prop(md, "ui_type", expand=True)
+
+ if (md.ui_type == "CANVAS"):
+ canvas = md.canvas_settings
+
+ if (not canvas):
+ layout.operator("dpaint.type_toggle", text="Add Canvas").type = 'CANVAS'
+ else:
+ layout.operator("dpaint.type_toggle", text="Remove Canvas", icon='X').type = 'CANVAS'
+
+ surface = canvas.canvas_surfaces.active
+ row = layout.row()
+ row.template_list(canvas, "canvas_surfaces", canvas.canvas_surfaces, "active_index", rows=2)
+
+ col = row.column(align=True)
+ col.operator("dpaint.surface_slot_add", icon='ZOOMIN', text="")
+ col.operator("dpaint.surface_slot_remove", icon='ZOOMOUT', text="")
+
+ if surface:
+ layout.prop(surface, "name")
+ layout.prop(surface, "surface_format", expand=False)
+ col = layout.column()
+
+ if surface.surface_format != "VERTEX":
+ col.label(text="Quality:")
+ col.prop(surface, "image_resolution")
+ col.prop(surface, "use_antialiasing")
+
+ col = layout.column()
+ col.label(text="Frames:")
+ split = col.split()
+
+ col = split.column(align=True)
+ col.prop(surface, "frame_start", text="Start")
+ col.prop(surface, "frame_end", text="End")
+
+ col = split.column()
+ col.prop(surface, "frame_substeps")
+
+ elif (md.ui_type == "BRUSH"):
+ brush = md.brush_settings
+ engine = context.scene.render.engine
+
+ if (not brush):
+ layout.operator("dpaint.type_toggle", text="Add Brush").type = 'BRUSH'
+ else:
+ layout.operator("dpaint.type_toggle", text="Remove Brush", icon='X').type = 'BRUSH'
+
+ split = layout.split()
+
+ col = split.column()
+ col.prop(brush, "absolute_alpha")
+ col.prop(brush, "paint_erase")
+ col.prop(brush, "paint_wetness", text="Wetness")
+
+ col = split.column()
+ if (engine == 'BLENDER_RENDER'):
+ sub = col.column()
+ sub.active = (brush.paint_source != "PARTICLE_SYSTEM");
+ sub.prop(brush, "use_material")
+ if brush.use_material and brush.paint_source != "PARTICLE_SYSTEM" and (engine == 'BLENDER_RENDER'):
+ col.prop(brush, "material", text="")
+ col.prop(brush, "paint_alpha", text="Alpha Factor")
+ else:
+ col.prop(brush, "paint_color", text="")
+ col.prop(brush, "paint_alpha", text="Alpha")
+
+
+class PHYSICS_PT_dp_advanced_canvas(PhysicButtonsPanel, bpy.types.Panel):
+ bl_label = "Dynamic Paint Advanced"
+
+ @classmethod
+ def poll(cls, context):
+ md = context.dynamic_paint
+ return md and (md.ui_type == "CANVAS") and (md.canvas_settings) and (md.canvas_settings.canvas_surfaces.active)
+
+ def draw(self, context):
+ layout = self.layout
+
+ canvas = context.dynamic_paint.canvas_settings
+ surface = canvas.canvas_surfaces.active
+ ob = context.object
+
+ layout.prop(surface, "surface_type", expand=False)
+ layout.separator()
+
+ # dissolve
+ if (surface.surface_type == "PAINT"):
+ split = layout.split(percentage=0.35)
+ col = split.column()
+ col.label(text="Wetmap drying:")
+ col = split.column()
+ split = col.split(percentage=0.7)
+ col = split.column()
+ col.prop(surface, "dry_speed", text="Time")
+ col = split.column()
+ col.prop(surface, "use_dry_log", text="Slow")
+
+ if (surface.surface_type != "WAVE"):
+ split = layout.split(percentage=0.35)
+ col = split.column()
+ if (surface.surface_type == "DISPLACE"):
+ col.prop(surface, "use_dissolve", text="Dissolve:")
+ elif (surface.surface_type == "WEIGHT"):
+ col.prop(surface, "use_dissolve", text="Fade:")
+ else:
+ col.prop(surface, "use_dissolve", text="Dissolve:")
+ col = split.column()
+ col.active = surface.use_dissolve
+ split = col.split(percentage=0.7)
+ col = split.column()
+ col.prop(surface, "dissolve_speed", text="Time")
+ col = split.column()
+ col.prop(surface, "use_dissolve_log", text="Slow")
+
+ # per type settings
+ if (surface.surface_type == "DISPLACE"):
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list