[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57254] trunk/blender/source/blender/ modifiers/intern/MOD_ocean.c: fix [#35628] Dynamic paint waves over ocean modifier doesn't work

Campbell Barton ideasman42 at gmail.com
Wed Jun 5 21:22:12 CEST 2013


Revision: 57254
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57254
Author:   campbellbarton
Date:     2013-06-05 19:22:12 +0000 (Wed, 05 Jun 2013)
Log Message:
-----------
fix [#35628] Dynamic paint waves over ocean modifier doesn't work

Caused by my recent normal calculation changes, added dependsOnNormals callback which was missing for ocean modifier (it assumed input normals were set).

Modified Paths:
--------------
    trunk/blender/source/blender/modifiers/intern/MOD_ocean.c

Modified: trunk/blender/source/blender/modifiers/intern/MOD_ocean.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_ocean.c	2013-06-05 19:06:33 UTC (rev 57253)
+++ trunk/blender/source/blender/modifiers/intern/MOD_ocean.c	2013-06-05 19:22:12 UTC (rev 57254)
@@ -232,6 +232,12 @@
 }
 #endif /* WITH_OCEANSIM */
 
+static bool dependsOnNormals(ModifierData *md)
+{
+	OceanModifierData *omd = (OceanModifierData *)md;
+	return (omd->geometry_mode != MOD_OCEAN_GEOM_GENERATE);
+}
+
 #if 0
 static void dm_get_bounds(DerivedMesh *dm, float *sx, float *sy, float *ox, float *oy)
 {
@@ -437,8 +443,10 @@
 		simulate_ocean_modifier(omd);
 	}
 
-	if (omd->geometry_mode == MOD_OCEAN_GEOM_GENERATE)
+	if (omd->geometry_mode == MOD_OCEAN_GEOM_GENERATE) {
 		dm = generate_ocean_geometry(omd);
+		DM_ensure_normals(dm);
+	}
 	else if (omd->geometry_mode == MOD_OCEAN_GEOM_DISPLACE) {
 		dm = CDDM_copy(derivedData);
 	}
@@ -542,6 +550,8 @@
 {
 	DerivedMesh *result;
 
+	CDDM_calc_normals(derivedData);
+
 	result = doOcean(md, ob, derivedData, 0);
 
 	if (result != derivedData)
@@ -573,7 +583,7 @@
 	/* isDisabled */        NULL,
 	/* updateDepgraph */    NULL,
 	/* dependsOnTime */     NULL,
-	/* dependsOnNormals */	NULL,
+	/* dependsOnNormals */	dependsOnNormals,
 	/* foreachObjectLink */ NULL,
 	/* foreachIDLink */     NULL,
 };




More information about the Bf-blender-cvs mailing list