[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12682] trunk/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Nov 26 23:09:57 CET 2007


Revision: 12682
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12682
Author:   blendix
Date:     2007-11-26 23:09:57 +0100 (Mon, 26 Nov 2007)

Log Message:
-----------

Particles
=========

Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:

- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.

Point Cache
===========

The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.

See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint

Documentation
=============

These new features still need good docs for the release logs, help
for this is appreciated.

Modified Paths:
--------------
    trunk/blender/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj
    trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj
    trunk/blender/release/datafiles/blenderbuttons
    trunk/blender/release/datafiles/preview.blend
    trunk/blender/source/blender/blenkernel/BKE_DerivedMesh.h
    trunk/blender/source/blender/blenkernel/BKE_bad_level_calls.h
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/BKE_displist.h
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/blenkernel/BKE_main.h
    trunk/blender/source/blender/blenkernel/BKE_modifier.h
    trunk/blender/source/blender/blenkernel/BKE_softbody.h
    trunk/blender/source/blender/blenkernel/BKE_utildefines.h
    trunk/blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    trunk/blender/source/blender/blenkernel/intern/customdata.c
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/blenkernel/intern/displist.c
    trunk/blender/source/blender/blenkernel/intern/effect.c
    trunk/blender/source/blender/blenkernel/intern/ipo.c
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenkernel/intern/modifier.c
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/blenkernel/intern/softbody.c
    trunk/blender/source/blender/blenlib/BLI_arithb.h
    trunk/blender/source/blender/blenlib/intern/arithb.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/blenloader/intern/writefile.c
    trunk/blender/source/blender/include/BDR_editobject.h
    trunk/blender/source/blender/include/BIF_butspace.h
    trunk/blender/source/blender/include/BIF_editview.h
    trunk/blender/source/blender/include/BIF_meshtools.h
    trunk/blender/source/blender/include/BIF_resources.h
    trunk/blender/source/blender/include/BIF_transform.h
    trunk/blender/source/blender/include/BSE_editipo.h
    trunk/blender/source/blender/include/blendef.h
    trunk/blender/source/blender/include/butspace.h
    trunk/blender/source/blender/include/transform.h
    trunk/blender/source/blender/makesdna/DNA_ID.h
    trunk/blender/source/blender/makesdna/DNA_customdata_types.h
    trunk/blender/source/blender/makesdna/DNA_ipo_types.h
    trunk/blender/source/blender/makesdna/DNA_material_types.h
    trunk/blender/source/blender/makesdna/DNA_meshdata_types.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_object_types.h
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/makesdna/DNA_texture_types.h
    trunk/blender/source/blender/makesdna/intern/makesdna.c
    trunk/blender/source/blender/render/extern/include/RE_render_ext.h
    trunk/blender/source/blender/render/intern/include/renderdatabase.h
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/blender/render/intern/source/renderdatabase.c
    trunk/blender/source/blender/render/intern/source/texture.c
    trunk/blender/source/blender/src/blenderbuttons.c
    trunk/blender/source/blender/src/butspace.c
    trunk/blender/source/blender/src/buttons_editing.c
    trunk/blender/source/blender/src/buttons_object.c
    trunk/blender/source/blender/src/buttons_shading.c
    trunk/blender/source/blender/src/drawobject.c
    trunk/blender/source/blender/src/drawscene.c
    trunk/blender/source/blender/src/drawview.c
    trunk/blender/source/blender/src/edit.c
    trunk/blender/source/blender/src/editipo.c
    trunk/blender/source/blender/src/editipo_lib.c
    trunk/blender/source/blender/src/editobject.c
    trunk/blender/source/blender/src/editscreen.c
    trunk/blender/source/blender/src/editview.c
    trunk/blender/source/blender/src/header_buttonswin.c
    trunk/blender/source/blender/src/header_info.c
    trunk/blender/source/blender/src/header_ipo.c
    trunk/blender/source/blender/src/header_view3d.c
    trunk/blender/source/blender/src/headerbuttons.c
    trunk/blender/source/blender/src/meshtools.c
    trunk/blender/source/blender/src/parametrizer.c
    trunk/blender/source/blender/src/preview.blend.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/blender/src/toets.c
    trunk/blender/source/blender/src/transform.c
    trunk/blender/source/blender/src/transform_conversions.c
    trunk/blender/source/blender/src/transform_generics.c
    trunk/blender/source/blender/src/transform_manipulator.c
    trunk/blender/source/blender/src/view.c

Added Paths:
-----------
    trunk/blender/source/blender/blenkernel/BKE_particle.h
    trunk/blender/source/blender/blenkernel/BKE_pointcache.h
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenkernel/intern/particle_system.c
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenlib/BLI_kdtree.h
    trunk/blender/source/blender/blenlib/intern/BLI_kdtree.c
    trunk/blender/source/blender/include/BIF_editparticle.h
    trunk/blender/source/blender/makesdna/DNA_particle_types.h
    trunk/blender/source/blender/src/editparticle.c

Modified: trunk/blender/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj
===================================================================
--- trunk/blender/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj	2007-11-26 22:09:57 UTC (rev 12682)
@@ -435,6 +435,15 @@
 				RelativePath="..\..\..\source\blender\blenkernel\intern\packedFile.c">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\blenkernel\intern\particle.c">
+			</File>
+			<File
+				RelativePath="..\..\..\source\blender\blenkernel\intern\particle_system.c">
+			</File>
+			<File
+				RelativePath="..\..\..\source\blender\blenkernel\intern\pointcache.c">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\blenkernel\intern\property.c">
 			</File>
 			<File
@@ -625,6 +634,9 @@
 				RelativePath="..\..\..\source\blender\blenkernel\BKE_plugin_types.h">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\blenkernel\BKE_pointcache.h">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\blenkernel\BKE_property.h">
 			</File>
 			<File

Modified: trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj
===================================================================
--- trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj	2007-11-26 22:09:57 UTC (rev 12682)
@@ -308,6 +308,9 @@
 				RelativePath="..\..\..\source\blender\src\editoops.c">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\src\editparticle.c">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\src\editscreen.c">
 			</File>
 			<File
@@ -675,6 +678,9 @@
 				RelativePath="..\..\..\source\blender\include\BIF_editoops.h">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\include\BIF_editparticle.h">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\include\BIF_editsca.h">
 			</File>
 			<File

Modified: trunk/blender/release/datafiles/blenderbuttons
===================================================================
(Binary files differ)

Modified: trunk/blender/release/datafiles/preview.blend
===================================================================
(Binary files differ)

Modified: trunk/blender/source/blender/blenkernel/BKE_DerivedMesh.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_DerivedMesh.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_DerivedMesh.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -70,6 +70,7 @@
 	CustomData vertData, edgeData, faceData;
 	int numVertData, numEdgeData, numFaceData;
 	int needsFree; /* checked on ->release, is set to 0 for cached results */
+	int deformedOnly; /* set by modifier stack if only deformed from original */
 
 	/* Misc. Queries */
 

Modified: trunk/blender/source/blender/blenkernel/BKE_bad_level_calls.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_bad_level_calls.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_bad_level_calls.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -231,5 +231,12 @@
 void harmonic_coordinates_bind(struct MeshDeformModifierData *mmd,
 	float (*vertexcos)[3], int totvert, float cagemat[][4]);
 
+/* particle.c */
+struct ParticleSystem;
+
+void PE_free_particle_edit(struct ParticleSystem *psys);
+void PE_get_colors(char sel[4], char nosel[4]);
+void PE_recalc_world_cos(struct Object *ob, struct ParticleSystem *psys);
+
 #endif
 

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -44,7 +44,7 @@
 struct MemFile;
 
 #define BLENDER_VERSION			245
-#define BLENDER_SUBVERSION		7
+#define BLENDER_SUBVERSION		8
 
 #define BLENDER_MINVERSION		240
 #define BLENDER_MINSUBVERSION	0

Modified: trunk/blender/source/blender/blenkernel/BKE_displist.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_displist.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_displist.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -123,5 +123,7 @@
 
 void fastshade_free_render(void);
 
+float calc_taper(struct Object *taperobj, int cur, int tot);
+
 #endif
 

Modified: trunk/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_global.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_global.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -187,6 +187,7 @@
 /*#endif*/
 #define G_DRAWSHARP     (1 << 28) /* draw edges with the sharp flag */
 #define G_SCULPTMODE    (1 << 29)
+#define G_PARTICLEEDIT	(1 << 30)
 
 #define G_AUTOMATKEYS	(1 << 30)
 #define G_HIDDENHANDLES (1 << 31) /* used for curves only */
@@ -243,9 +244,10 @@
 #define B_ENDIAN	0
 
 /* G.moving, signals drawing in (3d) window to denote transform */
-#define G_TRANSFORM_OBJ		1
-#define G_TRANSFORM_EDIT	2
-#define G_TRANSFORM_MANIP	4
+#define G_TRANSFORM_OBJ			1
+#define G_TRANSFORM_EDIT		2
+#define G_TRANSFORM_MANIP		4
+#define G_TRANSFORM_PARTICLE	8
 
 /* G.special1 */
 

Modified: trunk/blender/source/blender/blenkernel/BKE_main.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_main.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_main.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -78,6 +78,7 @@
 	ListBase action;
 	ListBase nodetree;
 	ListBase brush;
+	ListBase particle;
 } Main;
 
 

Modified: trunk/blender/source/blender/blenkernel/BKE_modifier.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_modifier.h	2007-11-26 20:27:01 UTC (rev 12681)
+++ trunk/blender/source/blender/blenkernel/BKE_modifier.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -59,6 +59,12 @@
 
 	eModifierTypeType_Constructive,
 	eModifierTypeType_Nonconstructive,
+
+	/* both deformVerts & applyModifier are valid calls
+	 * used for particles modifier that doesn't actually modify the object
+	 * unless it's a mesh and can be exploded -> curve can also emit particles
+	 */
+	eModifierTypeType_DeformOrConstruct
 } ModifierTypeType;
 
 typedef enum {
@@ -81,8 +87,8 @@
 	eModifierTypeFlag_RequiresOriginalData = (1<<5),
 } ModifierTypeFlag;
 
-typedef void (*ObjectWalkFunc)(void *userData, Object *ob, Object **obpoin);
-typedef void (*IDWalkFunc)(void *userData, Object *ob, ID **idpoin);
+typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin);
+typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin);
 
 typedef struct ModifierTypeInfo {
 	/* The user visible name for this modifier */
@@ -277,11 +283,14 @@
                                      int *lastPossibleCageIndex_r);
 
 int           modifiers_isSoftbodyEnabled(struct Object *ob);
+int           modifiers_isParticleEnabled(struct Object *ob);
 struct Object *modifiers_isDeformedByArmature(struct Object *ob);
 struct Object *modifiers_isDeformedByLattice(struct Object *ob);
 int           modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
 int           modifiers_isDeformed(struct Object *ob);
 
+int           modifiers_indexInObject(struct Object *ob, struct ModifierData *md);
+
 /* Calculates and returns a linked list of CustomDataMasks indicating the
  * data required by each modifier in the stack pointed to by md for correct
  * evaluation, assuming the data indicated by dataMask is required at the

Copied: trunk/blender/source/blender/blenkernel/BKE_particle.h (from rev 12680, branches/particles/source/blender/blenkernel/BKE_particle.h)
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_particle.h	                        (rev 0)
+++ trunk/blender/source/blender/blenkernel/BKE_particle.h	2007-11-26 22:09:57 UTC (rev 12682)
@@ -0,0 +1,254 @@
+/* BKE_particle.h
+ *
+ *
+ * $Id: BKE_particle.h $
+ *
+ * ***** BEGIN GPL/BL DUAL 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. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License.  See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2007 by Janne Karhu.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+
+#ifndef BKE_PARTICLE_H
+#define BKE_PARTICLE_H
+
+#include "DNA_particle_types.h"
+#include "DNA_object_types.h"
+
+struct ParticleSystemModifierData;
+struct ParticleSystem;
+struct ParticleKey;
+struct HairKey;
+
+struct Main;
+struct Group;
+struct Object;
+struct DerivedMesh;
+struct ModifierData;
+struct MTFace;
+struct MFace;
+struct MVert;
+struct IpoCurve;
+struct LinkNode;
+struct KDTree;
+
+typedef struct ParticleEffectorCache {
+	struct ParticleEffectorCache *next, *prev;
+	struct Object *ob;
+	
+	/* precalculated variables for guides */
+	float firstloc[4], firstdir[3];
+	float *distances;
+	float *locations;
+	/* precalculated variables for deflection */
+	float ob_minmax[6];
+	float *face_minmax;
+	float *vert_cos;
+	/* precalculated variables for boids */

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list