Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2005-11-30 02:31:26 +0300
committerTon Roosendaal <ton@blender.org>2005-11-30 02:31:26 +0300
commitadb2d5d88a2fce83c3fcee66b0be72c9590e0dd4 (patch)
treeb37f93ad9f21234ad9f2c88b21991eec7debc3df /source/blender/renderconverter
parenta381cb2fcab3d742c3f5680c0da6738173bfae0b (diff)
Bugfix #496
Noticed that static particle orcos (strands) actually were global coordinates. This was code copied from dynamic particles... Bugreporter (hi env!) tried to make nice zebra texture, which of course very much failed. Note; orco textures for strand give the same texture coordinate for the entire hair. UV maps don't work here yet.
Diffstat (limited to 'source/blender/renderconverter')
-rw-r--r--source/blender/renderconverter/intern/convertBlenderScene.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c
index 81ad0eac57c..07ae6dbcdd2 100644
--- a/source/blender/renderconverter/intern/convertBlenderScene.c
+++ b/source/blender/renderconverter/intern/convertBlenderScene.c
@@ -1030,7 +1030,7 @@ static void render_static_particle_system(Object *ob, PartEff *paf)
VlakRen *vlr;
float xn, yn, zn, imat[3][3], mat[4][4], hasize;
float mtime, ptime, ctime, vec[3], vec1[3], view[3], nor[3];
- float *orco= NULL;
+ float *orco= NULL, loc_tex[3], size_tex[3];
int a, mat_nr=1, seed, totvlako, totverto, first;
pa= paf->keys;
@@ -1060,6 +1060,8 @@ static void render_static_particle_system(Object *ob, PartEff *paf)
BLI_ghash_insert(g_orco_hash, paf, orco); /* pointer is particles, otherwise object uses it */
}
+ mesh_get_texspace(ob->data, loc_tex, NULL, size_tex);
+
if(ob->ipoflag & OB_OFFS_PARTICLE) ptime= ob->sf;
else ptime= 0.0;
ctime= bsystem_time(ob, 0, (float)G.scene->r.cfra, ptime);
@@ -1068,9 +1070,11 @@ static void render_static_particle_system(Object *ob, PartEff *paf)
for(a=0; a<paf->totpart; a++, pa+=paf->totkey) {
where_is_particle(paf, pa, pa->time, vec1);
- if(orco) VECCOPY(orco, vec1);
- MTC_Mat4MulVecfl(mat, vec1);
-
+ if(orco) {
+ orco[0] = (vec1[0]-loc_tex[0])/size_tex[0];
+ orco[1] = (vec1[1]-loc_tex[1])/size_tex[1];
+ orco[2] = (vec1[2]-loc_tex[2])/size_tex[2];
+ }
mtime= pa->time+pa->lifetime+paf->staticstep-1;
first= 1;