diff options
author | Ton Roosendaal <ton@blender.org> | 2005-12-04 17:32:21 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2005-12-04 17:32:21 +0300 |
commit | aa939b859904fcfad5c6782e14621da74bbf8118 (patch) | |
tree | ccf58f615f767fea93ddcfc01988244efdc0c643 /source/blender/blenkernel/BKE_material.h | |
parent | c2cff1cbcf71634de3aca184c70cc4bd23fe35a8 (diff) |
Orange branch feature; Material Layering
(WIP, don't bugs for this in tracker yet please!)
- New Panel "Layers" in Material buttons, allows to add unlimited amount
of materials on top of each other.
- Every Layer is actually just another Material, which gets rendered/shaded
(including texture), and then added on top of previous layer with an
operation like Mix, Add, Mult, etc.
- Layers render fully independent, so bumpmaps are not passed on to next
layers.
- Per Layer you can set if it influences Diffuse, Specular or Alpha
- If a Material returns alpha (like from texture), the alpha value is
used for adding the layers too.
- New texture "Map To" channel allows to have a texture work on a Layer
- Each layer, including basis Material, can be turned on/off individually
Notes:
- at this moment, the full shading pass happens for each layer, including
shadow, AO and raytraced mirror or transparency...
- I had to remove old hacks from preview render, which corrected reflected
normals for preview texturing.
- still needs loadsa testing!
Diffstat (limited to 'source/blender/blenkernel/BKE_material.h')
-rw-r--r-- | source/blender/blenkernel/BKE_material.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h index fcdbed10ffa..16a320010ec 100644 --- a/source/blender/blenkernel/BKE_material.h +++ b/source/blender/blenkernel/BKE_material.h @@ -48,16 +48,18 @@ void init_material(struct Material *ma); struct Material *add_material(char *name); struct Material *copy_material(struct Material *ma); void make_local_material(struct Material *ma); + struct Material ***give_matarar(struct Object *ob); short *give_totcolp(struct Object *ob); struct Material *give_current_material(struct Object *ob, int act); ID *material_from(struct Object *ob, int act); void assign_material(struct Object *ob, struct Material *ma, int act); void new_material_to_objectdata(struct Object *ob); + +struct Material *get_active_matlayer(struct Material *ma); void init_render_material(struct Material *ma); void init_render_materials(void); -void end_render_material(struct Material *ma); -void end_render_materials(void); + void automatname(struct Material *ma); void delete_material_index(void); |