[Bf-blender-cvs] [06d943c] master: Fix T40983 Particle Texture use of generated coordinates is wrong.

Lukas Tönne noreply at git.blender.org
Tue Jul 8 13:47:41 CEST 2014


Commit: 06d943cfd684176e10c2a31b8ea66dfb2221e870
Author: Lukas Tönne
Date:   Tue Jul 8 13:44:58 2014 +0200
https://developer.blender.org/rB06d943cfd684176e10c2a31b8ea66dfb2221e870

Fix T40983 Particle Texture use of generated coordinates is wrong.

Particle texture eval was not taking the actual texture space for orco/
generated textures into account at all.

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

M	release/scripts/addons
M	release/scripts/addons_contrib
M	source/blender/blenkernel/intern/particle.c

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

diff --git a/release/scripts/addons b/release/scripts/addons
index 9948cd6..59ff66f 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 9948cd6025f29fad12eaf6d3b0e738dfb2b50d4a
+Subproject commit 59ff66fa7aca6a56dfa516ee4a456428516d2c6f
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 0bd307a..9c1b725 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 0bd307ae8cc7746b433c0baf9be13dc662b47f08
+Subproject commit 9c1b7252bb510cc527c4ef2fd5aa3b586d095e98
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 50152c7..8161f9d 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -3890,6 +3890,8 @@ static void get_cpa_texture(DerivedMesh *dm, ParticleSystem *psys, ParticleSetti
 }
 void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTexture *ptex, int event, float cfra)
 {
+	Object *ob = sim->ob;
+	Mesh *me = (Mesh *)ob->data;
 	ParticleSettings *part = sim->psys->part;
 	MTex **mtexp = part->mtex;
 	MTex *mtex;
@@ -3929,6 +3931,14 @@ void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTex
 				/* no break, failed to get uv's, so let's try orco's */
 				case TEXCO_ORCO:
 					psys_particle_on_emitter(sim->psmd, sim->psys->part->from, pa->num, pa->num_dmcache, pa->fuv, pa->foffset, co, 0, 0, 0, texvec, 0);
+					
+					if (me->bb == NULL || (me->bb->flag & BOUNDBOX_DIRTY)) {
+						BKE_mesh_texspace_calc(me);
+					}
+					sub_v3_v3(texvec, me->loc);
+					if (me->size[0] != 0.0f) texvec[0] /= me->size[0];
+					if (me->size[1] != 0.0f) texvec[1] /= me->size[1];
+					if (me->size[2] != 0.0f) texvec[2] /= me->size[2];
 					break;
 				case TEXCO_PARTICLE:
 					/* texture coordinates in range [-1, 1] */




More information about the Bf-blender-cvs mailing list