Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-10-09 19:51:14 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-10-09 19:51:14 +0400
commitd917bdb095573161522194449fc22f6809e5b5b2 (patch)
tree515874d441bd5547480e1a4714c45c03cb23ed2e /source/blender/render/extern
parent1255b1e82dae4db4cc6f1fab1e80e831cbee583b (diff)
Derivative map baker
Added support for derivative map baking, which is accessable as a dedicated baker type. Works pretty much the same as displacement map baker, but gives you derivative map. In fact, inernally this baker is just a filter which applies on the result of displacement map. Both regular and multires baking are supported. Patch by Morten Mikkelsen and self.
Diffstat (limited to 'source/blender/render/extern')
-rw-r--r--source/blender/render/extern/include/RE_multires_bake.h21
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h1
-rw-r--r--source/blender/render/extern/include/RE_shader_ext.h3
3 files changed, 17 insertions, 8 deletions
diff --git a/source/blender/render/extern/include/RE_multires_bake.h b/source/blender/render/extern/include/RE_multires_bake.h
index 04cfe55e3a3..c1c5fc4a04d 100644
--- a/source/blender/render/extern/include/RE_multires_bake.h
+++ b/source/blender/render/extern/include/RE_multires_bake.h
@@ -37,21 +37,26 @@ struct MultiresBakeRender;
typedef struct MultiresBakeRender {
DerivedMesh *lores_dm, *hires_dm;
- int simple, lvl, tot_lvl, bake_filter;
- short mode, use_lores_mesh;
+ bool simple;
+ int bake_filter; /* Bake-filter, aka margin */
+ int lvl, tot_lvl;
+ short mode;
+ bool use_lores_mesh; /* Use low-resolution mesh when baking displacement maps */
- int number_of_rays;
- float bias;
+ int number_of_rays; /* Number of rays to be cast when doing AO baking */
+ float bias; /* Bias between object and start ray point when doing AO baking */
int tot_obj, tot_image;
ListBase image;
int baked_objects, baked_faces;
- int raytrace_structure;
- int octree_resolution;
- int threads;
-
+ int raytrace_structure; /* Optimization structure to be used for AO baking */
+ int octree_resolution; /* Reslution of octotree when using octotree optimization structure */
+ int threads; /* Number of threads to be used for baking */
+
+ float user_scale; /* User scale used to scale displacement when baking derivative map. */
+
short *stop;
short *do_update;
float *progress;
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index 73a89ad884f..35d971ab976 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -281,6 +281,7 @@ int RE_seq_render_active(struct Scene *scene, struct RenderData *rd);
#define RE_BAKE_MIRROR_INTENSITY 10
#define RE_BAKE_ALPHA 11
#define RE_BAKE_EMIT 12
+#define RE_BAKE_DERIVATIVE 13
void RE_Database_Baking(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, const int type, struct Object *actob);
diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h
index 19ddfb7a13d..baec1a74721 100644
--- a/source/blender/render/extern/include/RE_shader_ext.h
+++ b/source/blender/render/extern/include/RE_shader_ext.h
@@ -213,6 +213,9 @@ int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob
struct Image *RE_bake_shade_get_image(void);
void RE_bake_ibuf_filter(struct ImBuf *ibuf, char *mask, const int filter);
void RE_bake_ibuf_normalize_displacement(struct ImBuf *ibuf, float *displacement, char *mask, float displacement_min, float displacement_max);
+float RE_bake_make_derivative(struct ImBuf *ibuf, float *heights_buffer, const char *mask,
+ const float height_min, const float height_max,
+ const float fmult);
#define BAKE_RESULT_OK 0
#define BAKE_RESULT_NO_OBJECTS 1