[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35037] trunk/blender/source/blender: Bugfix #26116

Ton Roosendaal ton at blender.org
Mon Feb 21 19:06:52 CET 2011


Revision: 35037
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35037
Author:   ton
Date:     2011-02-21 18:06:52 +0000 (Mon, 21 Feb 2011)
Log Message:
-----------
Bugfix #26116

Node materials with 'ray transparency' set now work again.
Fix provided by Ervin Weber, thanks a lot!

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/material.c
    trunk/blender/source/blender/render/intern/source/rayshade.c
    trunk/blender/source/blender/render/intern/source/shadeinput.c

Modified: trunk/blender/source/blender/blenkernel/intern/material.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/material.c	2011-02-21 17:53:39 UTC (rev 35036)
+++ trunk/blender/source/blender/blenkernel/intern/material.c	2011-02-21 18:06:52 UTC (rev 35037)
@@ -872,7 +872,7 @@
 				if(ma!=basemat) {
 					do_init_render_material(ma, r_mode, amb);
 					basemat->texco |= ma->texco;
-					basemat->mode_l |= ma->mode_l;
+					basemat->mode_l |= ma->mode_l & ~(MA_TRANSP|MA_ZTRANSP|MA_RAYTRANSP); 
 				}
 			}
 			else if(node->type==NODE_GROUP)

Modified: trunk/blender/source/blender/render/intern/source/rayshade.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rayshade.c	2011-02-21 17:53:39 UTC (rev 35036)
+++ trunk/blender/source/blender/render/intern/source/rayshade.c	2011-02-21 18:06:52 UTC (rev 35037)
@@ -1502,7 +1502,7 @@
 	float diff[3];
 	int do_tra, do_mir;
 	
-	do_tra= ((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP) && shr->alpha!=1.0f && (shi->depth <= shi->mat->ray_depth_tra));
+	do_tra= ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha!=1.0f && (shi->depth <= shi->mat->ray_depth_tra));
 	do_mir= ((shi->mat->mode & MA_RAYMIRROR) && shi->ray_mirror!=0.0f && (shi->depth <= shi->mat->ray_depth));
 	
 	/* raytrace mirror amd refract like to separate the spec color */

Modified: trunk/blender/source/blender/render/intern/source/shadeinput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeinput.c	2011-02-21 17:53:39 UTC (rev 35036)
+++ trunk/blender/source/blender/render/intern/source/shadeinput.c	2011-02-21 18:06:52 UTC (rev 35037)
@@ -133,13 +133,13 @@
 	/* depth >= 1 when ray-shading */
 	if(shi->depth==0 || shi->volume_depth > 0) {
 		if(R.r.mode & R_RAYTRACE) {
-			if(shi->ray_mirror!=0.0f || ((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP) && shr->alpha!=1.0f)) {
+		    if(shi->ray_mirror!=0.0f || ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha!=1.0f)) {
 				/* ray trace works on combined, but gives pass info */
 				ray_trace(shi, shr);
 			}
 		}
 		/* disable adding of sky for raytransp */
-		if((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP))
+		if((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP))
 			if((shi->layflag & SCE_LAY_SKY) && (R.r.alphamode==R_ADDSKY))
 				shr->alpha= 1.0f;
 	}




More information about the Bf-blender-cvs mailing list