[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27262] branches/render25: Render Branch: temporary hack option to allow material traceble to be ignored,

Brecht Van Lommel brecht at blender.org
Thu Mar 4 14:42:09 CET 2010


Revision: 27262
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27262
Author:   blendix
Date:     2010-03-04 14:42:07 +0100 (Thu, 04 Mar 2010)

Log Message:
-----------
Render Branch: temporary hack option to allow material traceble to be ignored,
just for easier testing in durian because we currently have this option
disabled on all but a few materials.

Modified Paths:
--------------
    branches/render25/release/scripts/ui/properties_render.py
    branches/render25/source/blender/makesdna/DNA_scene_types.h
    branches/render25/source/blender/makesrna/intern/rna_scene.c
    branches/render25/source/blender/render/intern/include/object_mesh.h
    branches/render25/source/blender/render/intern/raytrace/rayobject.cpp
    branches/render25/source/blender/render/intern/source/object_mesh.c
    branches/render25/source/blender/render/intern/source/rayshade.c

Modified: branches/render25/release/scripts/ui/properties_render.py
===================================================================
--- branches/render25/release/scripts/ui/properties_render.py	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/release/scripts/ui/properties_render.py	2010-03-04 13:42:07 UTC (rev 27262)
@@ -189,6 +189,7 @@
         if wide_ui:
             col = split.column()
         col.prop(rd, "render_raytracing", text="Ray Tracing")
+        col.prop(rd, "render_raytrace_all")
         col.prop(rd, "color_management")
         col.prop(rd, "alpha_mode", text="Alpha")
 

Modified: branches/render25/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- branches/render25/source/blender/makesdna/DNA_scene_types.h	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/source/blender/makesdna/DNA_scene_types.h	2010-03-04 13:42:07 UTC (rev 27262)
@@ -386,6 +386,8 @@
 	/* path tracing */
 	int integrator;
 	int path_samples;
+	int raytrace_all;
+	int pad;
 
 	/* render engine */
 	char engine[32];

Modified: branches/render25/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- branches/render25/source/blender/makesrna/intern/rna_scene.c	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/source/blender/makesrna/intern/rna_scene.c	2010-03-04 13:42:07 UTC (rev 27262)
@@ -2182,6 +2182,11 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "mode", R_RAYTRACE);
 	RNA_def_property_ui_text(prop, "Render Raytracing", "Pre-calculate the raytrace accelerator and render raytracing effects");
 	RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
+
+	prop= RNA_def_property(srna, "render_raytrace_all", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "raytrace_all", 0);
+	RNA_def_property_ui_text(prop, "Raytrace All", "Raytrace everything ignoring the traceble material option.");
+	RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
 	
 	prop= RNA_def_property(srna, "render_textures", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_negative_sdna(prop, NULL, "scemode", R_NO_TEX);

Modified: branches/render25/source/blender/render/intern/include/object_mesh.h
===================================================================
--- branches/render25/source/blender/render/intern/include/object_mesh.h	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/source/blender/render/intern/include/object_mesh.h	2010-03-04 13:42:07 UTC (rev 27262)
@@ -106,7 +106,7 @@
 
 /* vlakren->flag (vlak = face in dutch) char!!! */
 #define R_SMOOTH		1
-#define R_UNUSED_FLAG	2
+#define R_TRACEBLE		2
 #define R_STRAND		4 /* strand flag, means special handling */
 #define R_NOPUNOFLIP	8
 #define R_FULL_OSA		16

Modified: branches/render25/source/blender/render/intern/raytrace/rayobject.cpp
===================================================================
--- branches/render25/source/blender/render/intern/raytrace/rayobject.cpp	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/source/blender/render/intern/raytrace/rayobject.cpp	2010-03-04 13:42:07 UTC (rev 27262)
@@ -67,7 +67,7 @@
 {
 	/* for baking selected to active non-traceable materials might still
 	 * be in the raytree */
-	if(!(vlr->mat->mode & MA_TRACEBLE))
+	if(!(vlr->flag & R_TRACEBLE))
 		return 0;
 
 	/* I know... cpu cycle waste, might do smarter once */

Modified: branches/render25/source/blender/render/intern/source/object_mesh.c
===================================================================
--- branches/render25/source/blender/render/intern/source/object_mesh.c	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/source/blender/render/intern/source/object_mesh.c	2010-03-04 13:42:07 UTC (rev 27262)
@@ -3477,7 +3477,7 @@
 
 /* per face check if all samples should be taken.
    if raytrace or multisample, do always for raytraced material, or when material full_osa set */
-static void set_fullsample_flag(Render *re, ObjectRen *obr)
+static void set_fullsample_trace_flag(Render *re, ObjectRen *obr)
 {
 	VlakRen *vlr;
 	int a, trace, mode;
@@ -3490,10 +3490,14 @@
 	for(a=obr->totvlak-1; a>=0; a--) {
 		vlr= render_object_vlak_get(obr, a);
 		mode= vlr->mat->mode;
-		
+
 		if(mode & MA_FULL_OSA) 
 			vlr->flag |= R_FULL_OSA;
 		else if(trace) {
+			/* TODO: remove temporary raytrace_all hack */
+			if(mode & MA_TRACEBLE || re->params.r.raytrace_all)
+				vlr->flag |= R_TRACEBLE;
+
 			if(mode & MA_SHLESS);
 			else if(vlr->mat->material_type == MA_TYPE_VOLUME);
 			else if((mode & MA_RAYMIRROR) || ((mode & MA_TRANSP) && (mode & MA_RAYTRANSP)))
@@ -3695,7 +3699,7 @@
 					check_non_flat_quads(obr);
 			}
 			
-			set_fullsample_flag(re, obr);
+			set_fullsample_trace_flag(re, obr);
 
 			/* compute bounding boxes for clipping */
 			INIT_MINMAX(min, max);

Modified: branches/render25/source/blender/render/intern/source/rayshade.c
===================================================================
--- branches/render25/source/blender/render/intern/source/rayshade.c	2010-03-04 11:17:13 UTC (rev 27261)
+++ branches/render25/source/blender/render/intern/source/rayshade.c	2010-03-04 13:42:07 UTC (rev 27262)
@@ -249,7 +249,7 @@
 static int is_raytraceable_vlr(Render *re, VlakRen *vlr)
 {
 	/* note: volumetric must be tracable, wire must not */
-	if((re->params.flag & R_BAKE_TRACE) || (vlr->mat->mode & MA_TRACEBLE) || (vlr->mat->material_type == MA_TYPE_VOLUME))
+	if((re->params.flag & R_BAKE_TRACE) || (vlr->flag & R_TRACEBLE) || (vlr->mat->material_type == MA_TYPE_VOLUME))
 		if(vlr->mat->material_type != MA_TYPE_WIRE)
 			return 1;
 	return 0;





More information about the Bf-blender-cvs mailing list