From 561319989e6a80fda82bd70f7f9a3c0651536d98 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 28 Nov 2007 22:21:12 +0000 Subject: Render Baking ============= A new "Selected to Active" option in the Bake panel, to (typically) bake a high poly object onto a low poly object. Code based on patch #7339 by Frank Richter (Crystal Space developer), thanks!. Normal Mapping ============== Camera, World, Object and Tangent space is now supported for baking, and for material textures. The "NMap TS" setting is replaced with a dropdown of the four choices in the image texture buttons. http://www.blender.org/development/current-projects/changes-since-244/render-baking/ --- source/blender/render/extern/include/RE_pipeline.h | 3 ++- source/blender/render/extern/include/RE_raytrace.h | 4 ++++ source/blender/render/extern/include/RE_shader_ext.h | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender/render/extern') diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 9abc873172f..a8abf85a285 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -37,6 +37,7 @@ struct Scene; struct RenderData; struct NodeBlurData; +struct Object; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* this include is what is exposed of render to outside world */ @@ -209,7 +210,7 @@ void RE_zbuf_accumulate_vecblur(struct NodeBlurData *nbd, int xsize, int ysize, #define RE_BAKE_AO 2 #define RE_BAKE_NORMALS 3 #define RE_BAKE_TEXTURE 4 -void RE_Database_Baking(struct Render *re, struct Scene *scene, int type); +void RE_Database_Baking(struct Render *re, struct Scene *scene, int type, struct Object *actob); void RE_DataBase_GetView(struct Render *re, float mat[][4]); diff --git a/source/blender/render/extern/include/RE_raytrace.h b/source/blender/render/extern/include/RE_raytrace.h index 095ffcf0c18..d20e3130fa4 100644 --- a/source/blender/render/extern/include/RE_raytrace.h +++ b/source/blender/render/extern/include/RE_raytrace.h @@ -64,6 +64,9 @@ typedef struct Isect { RayFace *facecontr; float ddalabda; short faceisect; /* flag if facecontr was done or not */ + + /* custom pointer to be used in the RayCheckFunc */ + void *userdata; } Isect; /* function callbacks for face type abstraction */ @@ -80,6 +83,7 @@ void RE_ray_tree_free(RayTree *tree); /* intersection with full tree and single face */ int RE_ray_tree_intersect(RayTree *tree, Isect *is); +int RE_ray_tree_intersect_check(RayTree *tree, Isect *is, RayCheckFunc check); int RE_ray_face_intersection(Isect *is, RayCoordsFunc coordsfunc); /* retrieve the diameter of the tree structure, for setting intersection diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 052e104ee62..7717d6fdc48 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -173,9 +173,10 @@ int multitex_ext(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osa /* shaded view and bake */ struct Render; struct Image; +struct Object; void RE_shade_external(struct Render *re, struct ShadeInput *shi, struct ShadeResult *shr); -int RE_bake_shade_all_selected(struct Render *re, int type); +int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob); struct Image *RE_bake_shade_get_image(void); #endif /* RE_SHADER_EXT_H */ -- cgit v1.2.3