[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23593] branches/soc-2009-jaguarandi: *Updated UI options and added UI options to:

Andre Susano Pinto andresusanopinto at gmail.com
Thu Oct 1 20:30:59 CEST 2009


Revision: 23593
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23593
Author:   jaguarandi
Date:     2009-10-01 20:30:59 +0200 (Thu, 01 Oct 2009)

Log Message:
-----------
*Updated UI options and added UI options to:
	control whether instances are used or not
	control whether vertexs are stored localy or not

*Removed unsused code

Modified Paths:
--------------
    branches/soc-2009-jaguarandi/release/scripts/ui/buttons_scene.py
    branches/soc-2009-jaguarandi/source/blender/makesdna/DNA_scene_types.h
    branches/soc-2009-jaguarandi/source/blender/makesrna/intern/rna_scene.c
    branches/soc-2009-jaguarandi/source/blender/render/SConscript
    branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject_blibvh.c
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject_octree.c
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayshade.c

Removed Paths:
-------------
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bvh.cpp

Modified: branches/soc-2009-jaguarandi/release/scripts/ui/buttons_scene.py
===================================================================
--- branches/soc-2009-jaguarandi/release/scripts/ui/buttons_scene.py	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/release/scripts/ui/buttons_scene.py	2009-10-01 18:30:59 UTC (rev 23593)
@@ -171,8 +171,11 @@
 		sub.itemR(rd, "free_image_textures")
 		sub = col.column()
 		sub.active = rd.render_raytracing
-		sub.itemL(text="Ray Tracing Octree:")
-		sub.itemR(rd, "octree_resolution", text="")
+		sub.itemL(text="Acceleration structure:")
+		sub.itemR(rd, "raytrace_structure", text="")
+		sub.itemR(rd, "use_instances", text="Instance support")
+		sub.itemR(rd, "use_local_coords", text="Local coords")
+		sub.itemR(rd, "octree_resolution", text="Octree resolution")
 
 class SCENE_PT_post_processing(RenderButtonsPanel):
 	__label__ = "Post Processing"

Modified: branches/soc-2009-jaguarandi/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/makesdna/DNA_scene_types.h	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/source/blender/makesdna/DNA_scene_types.h	2009-10-01 18:30:59 UTC (rev 23593)
@@ -242,12 +242,23 @@
 	 */
 	int mode;
 
-	/* render engine (deprecated), octree resolution */
-	short renderer, ocres;
-	short raystructure;
-	short raytrace_tree_type;
-	short pad4[2];
+	/**
+	 * Flags for raytrace settings. Use bit-masking to access the settings.
+	 */
+	int raytrace_options;
+	
+	/**
+	 * Raytrace acceleration structure
+	 */
+	short raytrace_structure;
 
+	/* renderer (deprecated) */
+	short renderer;
+
+	/* octree resolution */
+	short ocres;
+	short pad4;
+	
 	/**
 	 * What to do with the sky/background. Picks sky/premul/key
 	 * blending for the background
@@ -260,6 +271,7 @@
 	short osa;
 
 	short frs_sec, edgeint;
+
 	
 	/* safety, border and display rect */
 	rctf safety, border;
@@ -808,8 +820,11 @@
 #define R_RAYSTRUCTURE_VBVH				3
 #define R_RAYSTRUCTURE_SIMD_SVBVH		4	/* needs SIMD */
 #define R_RAYSTRUCTURE_SIMD_QBVH		5	/* needs SIMD */
-#define R_RAYSTRUCTURE_BIH				6
 
+/* raytrace_options */
+#define R_RAYTRACE_USE_LOCAL_COORDS		0x0001
+#define R_RAYTRACE_USE_INSTANCES		0x0002
+
 /* scemode (int now) */
 #define R_DOSEQ				0x0001
 #define R_BG_RENDER			0x0002

Modified: branches/soc-2009-jaguarandi/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/makesrna/intern/rna_scene.c	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/source/blender/makesrna/intern/rna_scene.c	2009-10-01 18:30:59 UTC (rev 23593)
@@ -1185,7 +1185,6 @@
 		{R_RAYSTRUCTURE_VBVH, "R_RAYSTRUCTURE_VBVH", 0, "vBVH", ""},
 		{R_RAYSTRUCTURE_SIMD_SVBVH, "R_RAYSTRUCTURE_SIMD_SVBVH", 0, "SIMD SVBVH", "Requires SIMD"},
 		{R_RAYSTRUCTURE_SIMD_QBVH, "R_RAYSTRUCTURE_SIMD_QBVH", 0, "SIMD QBVH", "Requires SIMD"},
-		{R_RAYSTRUCTURE_BIH, "R_RAYSTRUCTURE_BIH", 0, "BIH", ""},
 		{0, NULL, 0, NULL, NULL}
 		};
 
@@ -1618,11 +1617,22 @@
 	RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
 
 	prop= RNA_def_property(srna, "raytrace_structure", PROP_ENUM, PROP_NONE);
-	RNA_def_property_enum_sdna(prop, NULL, "raystructure");
+	RNA_def_property_enum_sdna(prop, NULL, "raytrace_structure");
 	RNA_def_property_enum_items(prop, raytrace_structure_items);
 	RNA_def_property_ui_text(prop, "Raytrace Acceleration Structure", "Type of raytrace accelerator structure.");
 	RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
 
+	prop= RNA_def_property(srna, "use_instances", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "raytrace_options", R_RAYTRACE_USE_INSTANCES);
+	RNA_def_property_ui_text(prop, "Use Instances", "Instance support leads to effective memory reduction when using duplicates.");
+	RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
+
+	prop= RNA_def_property(srna, "use_local_coords", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "raytrace_options", R_RAYTRACE_USE_LOCAL_COORDS);
+	RNA_def_property_ui_text(prop, "Use Local Coords", "Vertex coordinates are stored localy on each primitive. Increases memory usage, but may have impact on speed.");
+	RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
+
+
 	prop= RNA_def_property(srna, "antialiasing", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "mode", R_OSA);
 	RNA_def_property_ui_text(prop, "Anti-Aliasing", "Render and combine multiple samples per pixel to prevent jagged edges.");

Modified: branches/soc-2009-jaguarandi/source/blender/render/SConscript
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/SConscript	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/source/blender/render/SConscript	2009-10-01 18:30:59 UTC (rev 23593)
@@ -1,8 +1,8 @@
 #!/usr/bin/python
 Import ('env')
 
-cflags = ['-msse2','-mfpmath=sse']
-cxxflags = ['-msse2','-mfpmath=sse']
+cflags = ['-O2','-msse2','-mfpmath=sse']
+cxxflags = ['-O2','-msse2','-mfpmath=sse']
 sources = env.Glob('intern/source/*.c')
 raysources = env.Glob('intern/raytrace/*.cpp')
 

Modified: branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/source/blender/render/extern/include/RE_raytrace.h	2009-10-01 18:30:59 UTC (rev 23593)
@@ -85,11 +85,9 @@
 RayObject* RE_rayobject_instance_create(RayObject *target, float transform[][4], void *ob, void *target_ob);
 
 RayObject* RE_rayobject_blibvh_create(int size);	/* BLI_kdopbvh.c   */
-RayObject* RE_rayobject_bvh_create(int size);		/* raytrace/rayobject_bvh.c */
 RayObject* RE_rayobject_vbvh_create(int size);		/* raytrace/rayobject_vbvh.c */
-RayObject* RE_rayobject_qbvh_create(int size);		/* raytrace/rayobject_qbvh.c */
 RayObject* RE_rayobject_svbvh_create(int size);		/* raytrace/rayobject_svbvh.c */
-RayObject* RE_rayobject_bih_create(int size);		/* rayobject_bih.c */
+RayObject* RE_rayobject_qbvh_create(int size);		/* raytrace/rayobject_qbvh.c */
 
 
 /*

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject.cpp
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject.cpp	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject.cpp	2009-10-01 18:30:59 UTC (rev 23593)
@@ -142,7 +142,7 @@
 	return 0;
 }
 
-static int vlr_check_intersect(Isect *is, ObjectInstanceRen *obi, VlakRen *vlr)
+static inline int vlr_check_intersect(Isect *is, ObjectInstanceRen *obi, VlakRen *vlr)
 {
 	/* for baking selected to active non-traceable materials might still
 	 * be in the raytree */
@@ -156,7 +156,7 @@
 		return (is->lay & obi->lay);
 }
 
-static int vlr_check_intersect_solid(Isect *is, ObjectInstanceRen* obi, VlakRen *vlr)
+static inline int vlr_check_intersect_solid(Isect *is, ObjectInstanceRen* obi, VlakRen *vlr)
 {
 	/* solid material types only */
 	if (vlr->mat->material_type == MA_TYPE_SURFACE)
@@ -165,7 +165,7 @@
 		return 0;
 }
 
-static int rayface_check_cullface(RayFace *face, Isect *is)
+static inline int rayface_check_cullface(RayFace *face, Isect *is)
 {
 	float nor[3];
 	
@@ -189,7 +189,7 @@
 	if(is->orig.ob == face->ob && is->orig.face == face->face)
 		return 0;
 		
-/*
+
 	if(is->skip & RE_SKIP_VLR_RENDER_CHECK)
 	{
 		if(vlr_check_intersect(is, (ObjectInstanceRen*)face->ob, (VlakRen*)face->face ) == 0)
@@ -205,7 +205,7 @@
 		if(rayface_check_cullface(face, is) == 0)
 			return 0;
 	}
-*/
+
 	RE_RC_COUNT(is->raycounter->faces.test);
 
 	//Load coords

Deleted: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp	2009-10-01 18:00:00 UTC (rev 23592)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp	2009-10-01 18:30:59 UTC (rev 23593)
@@ -1,248 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. 
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2009 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): André Pinto.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-#include <assert.h>
-#include <stdio.h>
-
-#include "MEM_guardedalloc.h"
-#include "BKE_utildefines.h"
-#include "BLI_arithb.h"
-#include "RE_raytrace.h"
-#include "rayobject_rtbuild.h"
-#include "rayobject.h"
-
-#define BIH_NCHILDS	4
-typedef struct BIHTree BIHTree;
-
-static int  bih_intersect(BIHTree *obj, Isect *isec);
-static void bih_add(BIHTree *o, RayObject *ob);
-static void bih_done(BIHTree *o);
-static void bih_free(BIHTree *o);
-static void bih_bb(BIHTree *o, float *min, float *max);
-
-static RayObjectAPI bih_api =
-{
-	(RE_rayobject_raycast_callback) bih_intersect,
-	(RE_rayobject_add_callback)     bih_add,
-	(RE_rayobject_done_callback)    bih_done,
-	(RE_rayobject_free_callback)    bih_free,
-	(RE_rayobject_merge_bb_callback)bih_bb
-};
-
-typedef struct BIHNode BIHNode;
-struct BIHNode
-{
-	BIHNode *child[BIH_NCHILDS];
-	float bi[BIH_NCHILDS][2];
-	int split_axis;
-};
-
-struct BIHTree
-{
-	RayObject rayobj;
-
-	BIHNode *root;
-
-	BIHNode *node_alloc, *node_next;

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list