[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19320] branches/sim_physics/source/ blender/render/intern/source: Fixed a problem in how volumes were interpreting textures, and removed
Matt Ebb
matt at mke3.net
Tue Mar 17 06:33:07 CET 2009
Revision: 19320
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19320
Author: broken
Date: 2009-03-17 06:33:05 +0100 (Tue, 17 Mar 2009)
Log Message:
-----------
Fixed a problem in how volumes were interpreting textures, and removed
associated workarounds in point density texture.
Modified Paths:
--------------
branches/sim_physics/source/blender/render/intern/source/pointdensity.c
branches/sim_physics/source/blender/render/intern/source/texture.c
Modified: branches/sim_physics/source/blender/render/intern/source/pointdensity.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/pointdensity.c 2009-03-17 00:31:10 UTC (rev 19319)
+++ branches/sim_physics/source/blender/render/intern/source/pointdensity.c 2009-03-17 05:33:05 UTC (rev 19320)
@@ -373,7 +373,7 @@
int pointdensitytex(Tex *tex, float *texvec, TexResult *texres)
{
- int retval = TEX_INT+TEX_RGB;
+ int retval = TEX_INT;
PointDensity *pd = tex->pd;
PointDensityRangeData pdr;
float density=0.0f, age=0.0f, time=0.0f;
@@ -382,11 +382,11 @@
float turb, noise_fac;
int num=0;
- if ((!pd) || (!pd->point_tree)) {
- texres->tin = 0.0f;
+ texres->tin = 0.0f;
+
+ if ((!pd) || (!pd->point_tree))
return 0;
- }
-
+
init_pointdensityrangedata(pd, &pdr, &density, vec, &age);
noise_fac = pd->noise_fac * 0.5f; /* better default */
@@ -400,6 +400,9 @@
age /= num;
VecMulf(vec, 1.0f/num);
}
+
+ /* reset */
+ density = vec[0] = vec[1] = vec[2] = 0.0f;
}
if (pd->flag & TEX_PD_TURBULENCE) {
@@ -422,11 +425,9 @@
co[0] = texvec[0] + noise_fac * turb;
co[1] = texvec[1] + noise_fac * turb;
co[2] = texvec[2] + noise_fac * turb;
-
- /* reset and prepare for a new BVH query with the perturbed coordinates */
- density = vec[0] = vec[1] = vec[2] = 0.0f;
}
+ /* BVH query with the potentially perturbed coordinates */
num = BLI_bvhtree_range_query(pd->point_tree, co, pd->radius, accum_density, &pdr);
if (num > 0) {
age /= num;
@@ -436,13 +437,19 @@
texres->tin = density;
BRICONT;
+ if (pd->color_source == TEX_PD_COLOR_CONSTANT)
+ return retval;
+
+ retval |= TEX_RGB;
+
switch (pd->color_source) {
case TEX_PD_COLOR_PARTAGE:
if (pd->coba) {
if (do_colorband(pd->coba, age, col)) {
texres->talpha= 1;
- QUATCOPY(&texres->tr, col);
- texres->tin *= texres->ta;
+ VECCOPY(&texres->tr, col);
+ texres->tin *= col[3];
+ texres->ta = texres->tin;
}
}
break;
@@ -453,16 +460,18 @@
if (pd->coba) {
if (do_colorband(pd->coba, speed, col)) {
texres->talpha= 1;
- QUATCOPY(&texres->tr, col);
- texres->tin *= texres->ta;
+ VECCOPY(&texres->tr, col);
+ texres->tin *= col[3];
+ texres->ta = texres->tin;
}
}
break;
}
case TEX_PD_COLOR_PARTVEL:
+ texres->talpha= 1;
VecMulf(vec, pd->speed_scale);
VECCOPY(&texres->tr, vec);
- texres->ta = 1.0f;
+ texres->ta = texres->tin;
break;
case TEX_PD_COLOR_CONSTANT:
default:
Modified: branches/sim_physics/source/blender/render/intern/source/texture.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/texture.c 2009-03-17 00:31:10 UTC (rev 19319)
+++ branches/sim_physics/source/blender/render/intern/source/texture.c 2009-03-17 05:33:05 UTC (rev 19320)
@@ -1653,7 +1653,7 @@
float varfac= mtex->varfac*stencilTin;
/* convert RGB to intensity if intensity info isn't provided */
- if (rgbnor & TEX_INT) {
+ if (!(rgbnor & TEX_INT)) {
if (rgbnor & TEX_RGB) {
if(texres.talpha) texres.tin= texres.ta;
else texres.tin= (0.35*texres.tr+0.45*texres.tg+0.2*texres.tb);
More information about the Bf-blender-cvs
mailing list