[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17758] branches/soc-2007-joeedh/source/ blender: fixed compiler error, and some button issues.
Joseph Eagar
joeedh at gmail.com
Tue Dec 9 08:26:23 CET 2008
Revision: 17758
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17758
Author: joeedh
Date: 2008-12-09 08:26:23 +0100 (Tue, 09 Dec 2008)
Log Message:
-----------
fixed compiler error, and some button issues.
Modified Paths:
--------------
branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c
branches/soc-2007-joeedh/source/blender/render/intern/source/dsm_soft.c
branches/soc-2007-joeedh/source/blender/render/intern/source/rayshade.c
branches/soc-2007-joeedh/source/blender/src/buttons_shading.c
Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c 2008-12-09 07:19:55 UTC (rev 17757)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c 2008-12-09 07:26:23 UTC (rev 17758)
@@ -1484,7 +1484,7 @@
}
#ifndef INLINE
-#define INLINE inline
+#define INLINE //inline
#endif
INLINE static float dsm_bsearch(DSMFunction *func, int z, int bias) {
Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/dsm_soft.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/dsm_soft.c 2008-12-09 07:19:55 UTC (rev 17757)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/dsm_soft.c 2008-12-09 07:26:23 UTC (rev 17758)
@@ -174,12 +174,9 @@
siz= 0.5f*(float)shb->size;
VECCOPY(co, rco);
-// VECCOPY(co4, rco);
-// co4[3] = 1.0f;
co[3]= 1.0f;
MTC_Mat4MulVec4fl(shb->persmat, co); /* rational hom co */
-// MTC_Mat4MulVec4fl(shb->viewmat, co4); /* used for getting world-space depth */
xs= siz*(1.0f+co[0]/co[3]);
ys= siz*(1.0f+co[1]/co[3]);
@@ -235,9 +232,15 @@
samp = func->samples;
for (i=0; i<func->totsamples; i++, samp++) {
- if (zs > samp->depth+bias) {
- startsamp = samp;
- break;
+ if (zs >= samp->depth+bias) {
+ if (i != func->totsamples-1) {
+ if (zs <= (samp+1)->depth+bias) {
+ startsamp = samp;
+ break;
+ }
+ } else {
+ startsamp = samp;
+ }
}
}
@@ -249,21 +252,22 @@
/*find initial search size*/
//compute the light-space depth
- startz = dsm_homogz_to_dist(startsamp->depth, shb->winmat);
+ if (G.rt==31||DSM_LINEAR)
+ startz = dsm_linearz_to_dist(startsamp->depth, shb->clipsta, shb->clipend, shb->winmat);
+ else
+ startz = dsm_homogz_to_dist(startsamp->depth, shb->winmat);
+
searchsize = shb->soft * (startz - shb->clipsta) / startz;
searchsize /= 2;
if (searchsize == 0) searchsize = 1;
+ searchsize = (float) floor(searchsize + 0.5f);
- printf("u - %f %f %f %f\n", shb->clipsta, shb->soft, startz, searchsize);
-
averz = 0.0f;
totblockers = 0;
for (a=xs-searchsize; a<xs+searchsize; a++) {
- printf("0");
if (a < 0 || a >= dbuf->sizex) continue;
for (b=ys-searchsize; b<ys+searchsize; b++) {
- printf("1");
if (b < 0 || b >= dbuf->sizey) continue;
func = get_dsm_func(dbuf, a, b, 0);
if (!func) continue;
@@ -271,12 +275,17 @@
samp = func->samples;
for (i=0; i<func->totsamples; i++, samp++) {
if (samp->depth < startsamp->depth) {
- fz = dsm_homogz_to_dist(samp->depth, shb->winmat);
- averz += fz;
- totblockers++;
- break;
+ if (i==func->totsamples-1 || (samp+1)->depth
+ >= startsamp->depth) {
+ if (G.rt==31||DSM_LINEAR)
+ fz = dsm_linearz_to_dist(samp->depth, shb->clipsta, shb->clipend, shb->winmat);
+ else
+ fz = dsm_homogz_to_dist(samp->depth, shb->winmat);
+ averz += fz;
+ totblockers++;
+ break;
+ }
}
- printf("2");
}
}
}
@@ -284,26 +293,20 @@
if (totblockers) averz /= totblockers;
if (averz == 0.0f) averz = startz;
- printf("d - %d %f %f %f\n", totblockers, averz, startz, searchsize);
-
shadfac[0] = shadfac[1] = shadfac[2] = 0.0f;
totblockers = 0;
searchsize = (startz - averz) / averz;
- printf("t - %d %f %f %f\n", totblockers, averz, startz, searchsize);
searchsize = searchsize * shb->soft * shb->clipsta / startz;
searchsize /= 2.0;
if (searchsize == 0) searchsize = 1;
- printf("u - %d %f %f %f\n", totblockers, averz, startz, searchsize);
-
for (a=xs-searchsize; a < xs+searchsize; a++) {
//printf("(3 %f %d %f %f %f) ", searchsize, a, xs, (xs-searchsize), (xs+searchsize));
if (a < 0) continue;
if (a >= dbuf->sizex) break;
for (b=ys-searchsize; b < ys+searchsize; b++) {
- printf("4");
if (b < 0) continue;
if (b >= dbuf->sizey) break;
@@ -318,9 +321,12 @@
samp = func->samples;
for (c=0; c<func->totsamples; c++, samp++) {
if (samp->depth < startsamp->depth) {
- shadfac[i] += samp->value;
- totblockers++;
- break;
+ if (i==func->totsamples-1 || (samp+1)->depth
+ >= startsamp->depth) {
+ shadfac[i] += samp->value;
+ totblockers++;
+ break;
+ }
}
}
}
Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/rayshade.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/rayshade.c 2008-12-09 07:19:55 UTC (rev 17757)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/rayshade.c 2008-12-09 07:26:23 UTC (rev 17758)
@@ -739,7 +739,7 @@
}
}
-static struct QMCSampler *QMC_initSampler(int type, int tot)
+struct QMCSampler *QMC_initSampler(int type, int tot)
{
QMCSampler *qsa = MEM_callocN(sizeof(QMCSampler), "qmc sampler");
qsa->samp2d = MEM_callocN(2*sizeof(double)*tot, "qmc sample table");
Modified: branches/soc-2007-joeedh/source/blender/src/buttons_shading.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/src/buttons_shading.c 2008-12-09 07:19:55 UTC (rev 17757)
+++ branches/soc-2007-joeedh/source/blender/src/buttons_shading.c 2008-12-09 07:26:23 UTC (rev 17758)
@@ -2725,10 +2725,12 @@
if (la->buftype==LA_SHADBUF_DEEP) {
uiDefButS(block, NUM,B_NOP,"Halo step:", 200,60,100,19, &la->shadhalostep, 0.0, 12.0, 0, 0, "Sets the volumetric halo sampling frequency");
- uiDefButF(block, NUM,B_LAMPREDRAW,"Bias:", 100,40,40,19, &la->bias, 0.001, 200.0, 1, 0, "Sets the shadow map sampling bias");
- uiDefButF(block, NUM,B_LAMPREDRAW,"Soft Bias:", 140,40,60,19, &la->zthresh, 0.001, 200.0, 1, 0, "Second bias for soft shadows, to reduce light leaks");
+ uiDefButF(block, NUM,B_LAMPREDRAW,"Bias:", 100,40,100,19, &la->bias, 0.001, 200.0, 1, 0, "Sets the shadow map sampling bias");
+ uiDefButF(block, NUM,B_LAMPREDRAW,"Soft:", 200,40,100,19, &la->soft, 1.0, 100.0, 100, 0, "Sets the size of the shadow sample area");
+ //uiDefButF(block, NUM,B_LAMPREDRAW,"Bias:", 100,40,40,19, &la->bias, 0.001, 200.0, 1, 0, "Sets the shadow map sampling bias");
+ //uiDefButF(block, NUM,B_LAMPREDRAW,"Soft Bias:", 140,40,60,19, &la->zthresh, 0.001, 200.0, 1, 0, "Second bias for soft shadows, to reduce light leaks");
//uiDefButF(block, NUM,B_LAMPREDRAW,la->buftype==LA_SHADBUF_DEEP ? "Filter": "Soft:", 200,40,100,19, &la->soft, 1.0, la->buftype==LA_SHADBUF_DEEP ? 3 : 100.0, 100, 0, la->buftype==LA_SHADBUF_DEEP ? "Anti-alias filter width": "Sets the size of the shadow sample area");
- uiDefButF(block, NUM,B_LAMPREDRAW, "Soft:", 200,40,100,19, &la->soft, 1.0, 100.0, 100, 0, "Sets the size of the shadow sample area");
+ //uiDefButF(block, NUM,B_LAMPREDRAW, "Soft:", 200,40,100,19, &la->soft, 1.0, 100.0, 100, 0, "Sets the size of the shadow sample area");
} else {
uiDefButS(block, NUM,B_NOP,"Halo step:", 200,60,100,19, &la->shadhalostep, 0.0, 12.0, 0, 0, "Sets the volumetric halo sampling frequency");
uiDefButF(block, NUM,B_LAMPREDRAW,"Bias:", 100,40,100,19, &la->bias, 0.001, 200.0, 1, 0, "Sets the shadow map sampling bias");
More information about the Bf-blender-cvs
mailing list