diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 7ba81f60154..1489664b414 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -158,7 +158,7 @@ float mistfactor(float *co) /* dist en height, return alpha */ } } - return 1.0-fac; + return (1.0-fac)* (1-R.wrld.misi); } void RE_sky(char *col) @@ -1052,8 +1052,10 @@ void scanlinehaloPS(unsigned int *rectz, long *rectdelta, unsigned int *rectt, s if((a & 255)==0) har= R.bloha[a>>8]; else har++; - if(RE_local_test_break() ) break; - + if( !(a % 256) && RE_local_test_break() ) break; /* Hos, RPW - fix slow render bug, */ + /* !(loopvar%256) keeps checking for */ + /* ESC too often and bogging down render */ + /* (Based on discovery by Rob Haarsma) */ if(ys>har->maxy); else if(ysminy); else { @@ -1159,7 +1161,7 @@ void scanlinehalo(unsigned int *rectz, unsigned int *rectt, short ys) if((a & 255)==0) har= R.bloha[a>>8]; else har++; - if(RE_local_test_break() ) break; + if( !(a % 256) && RE_local_test_break() ) break; /* Hos, RPW, fixes Slow Render Bug */ if(ys>har->maxy); else if(ysminy); @@ -1213,7 +1215,7 @@ void halovert() if((a & 255)==0) har= R.bloha[a>>8]; else har++; - if(RE_local_test_break() ) break; + if( !(a % 256) && RE_local_test_break() ) break; /* Hos, RPW, fixes slow render bug */ if(har->maxy<0); else if(R.rectyminy); @@ -1267,7 +1269,7 @@ void halovert() rectt+= R.rectx; rectz+= R.rectx; - if(RE_local_test_break() ) break; + if( !(y % 256) && RE_local_test_break() ) break; /* Hos,RPW, Fixes slow render bug */ } } @@ -2475,7 +2477,7 @@ void zbufshadeDA(void) /* Delta Accum Pixel Struct */ /* 1 is for osa */ if(R.r.mode & R_EDGE) edge_enhance(); - if(RE_local_test_break()) break; + if( !(v % 256) && RE_local_test_break()) break; /*Hos,RPW, fixes slow render bug*/ } if(R.flag & (R_ZTRA+R_HALO) ) { /* to get back correct values of zbuffer Z for transp and halos */ xd= jit[0][0]; @@ -2607,7 +2609,7 @@ void zbufshadeDA(void) /* Delta Accum Pixel Struct */ } rz+= R.rectx; } - if(RE_local_test_break()) break; + if(!(y % 256) && RE_local_test_break()) break; /* Hos,RPW, fixes slow render bug */ } if( (R.r.mode & R_EDGE) && RE_local_test_break()==0) { @@ -2706,7 +2708,7 @@ void zbufshade(void) R.rectot); } - if(RE_local_test_break()) break; + if(!(y % 256) && RE_local_test_break()) break; /*Hos,RPW, Fixes Slow render bug */ } if(R.flag & R_ZTRA) endaccumbuf(); @@ -2769,7 +2771,7 @@ void renderhalo(HaloRen *har) /* postprocess version */ rectt+= R.rectx; - if(RE_local_test_break()) break; + if( !(y % 256) && RE_local_test_break()) break; /* Hos,RPW, fixes slow render bug */ } }