[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52680] trunk/blender/source/blender/ blenkernel/intern: Fix #33353: Smoke color problems with adaptive domain

Miika Hamalainen miika.hamalainen at kolumbus.fi
Fri Nov 30 12:01:15 CET 2012


Revision: 52680
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52680
Author:   miikah
Date:     2012-11-30 11:01:14 +0000 (Fri, 30 Nov 2012)
Log Message:
-----------
Fix #33353: Smoke color problems with adaptive domain

High resolution cache didn't always read all written data fields which caused colors to get messed up.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenkernel/intern/smoke.c

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2012-11-30 09:12:10 UTC (rev 52679)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2012-11-30 11:01:14 UTC (rev 52680)
@@ -686,7 +686,7 @@
 
 	/* reallocate fluid if needed*/
 	if (reallocate) {
-		sds->active_fields = active_fields;
+		sds->active_fields = active_fields | cache_fields;
 		smoke_reallocate_fluid(sds, ch_dx, ch_res, 1);
 		sds->dx = ch_dx;
 		VECCOPY(sds->res, ch_res);
@@ -755,6 +755,7 @@
 			if (cache_fields & SM_ACTIVE_FIRE) {
 				ptcache_file_compressed_read(pf, (unsigned char *)flame, out_len_big);
 				ptcache_file_compressed_read(pf, (unsigned char *)fuel, out_len_big);
+				ptcache_file_compressed_read(pf, (unsigned char *)react, out_len_big);
 			}
 			if (cache_fields & SM_ACTIVE_COLORS) {
 				ptcache_file_compressed_read(pf, (unsigned char *)r, out_len_big);

Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c	2012-11-30 09:12:10 UTC (rev 52679)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c	2012-11-30 11:01:14 UTC (rev 52680)
@@ -165,7 +165,7 @@
 void smoke_reallocate_fluid(SmokeDomainSettings *sds, float dx, int res[3], int free_old)
 {
 	int use_heat = (sds->active_fields & SM_ACTIVE_HEAT);
-	int use_fire = (sds->active_fields & (SM_ACTIVE_HEAT | SM_ACTIVE_FIRE));
+	int use_fire = (sds->active_fields & SM_ACTIVE_FIRE);
 	int use_colors = (sds->active_fields & SM_ACTIVE_COLORS);
 
 	if (free_old && sds->fluid)




More information about the Bf-blender-cvs mailing list