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:
Diffstat (limited to 'source/blender/makesdna/DNA_material_types.h')
-rw-r--r--source/blender/makesdna/DNA_material_types.h49
1 files changed, 37 insertions, 12 deletions
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index 451b8ba692f..79d73ff2b99 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -34,10 +34,9 @@
#ifndef DNA_MATERIAL_TYPES_H
#define DNA_MATERIAL_TYPES_H
-/* #include "BLI_listBase.h" */
-
#include "DNA_ID.h"
#include "DNA_scriptlink_types.h"
+#include "DNA_listBase.h"
#ifndef MAX_MTEX
#define MAX_MTEX 10
@@ -47,6 +46,17 @@ struct MTex;
struct Ipo;
struct Material;
struct ColorBand;
+struct Group;
+
+typedef struct MaterialLayer {
+ struct MaterialLayer *next, *prev;
+
+ struct Material *mat;
+ float blendfac;
+ short flag, blendmethod, menunr, pad;
+ int pad2;
+
+} MaterialLayer;
/* WATCH IT: change type? also make changes in ipo.h */
@@ -54,14 +64,16 @@ typedef struct Material {
ID id;
short colormodel, lay; /* lay: for dynamics (old engine, until 2.04) */
+ /* note, keep this below synced with render_types.h */
float r, g, b;
float specr, specg, specb;
float mirr, mirg, mirb;
float ambr, ambb, ambg;
-
float amb, emit, ang, spectra, ray_mirror;
float alpha, ref, spec, zoffs, add;
float translucency;
+ /* end synced with render_types.h */
+
float fresnel_mir, fresnel_mir_i;
float fresnel_tra, fresnel_tra_i;
float filter; /* filter added, for raytrace transparency */
@@ -69,16 +81,15 @@ typedef struct Material {
short har;
char seed1, seed2;
- int mode;
- int mode2; /* even more material settings :) */
+ int mode, mode_l; /* mode_l is the or-ed result of all layer modes */
short flarec, starc, linec, ringc;
float hasize, flaresize, subsize, flareboost;
float strand_sta, strand_end, strand_ease;
+ float sbias; /* shadow bias */
/* for buttons and render*/
char rgbsel, texact, pr_type, pad;
- short pr_back, pr_lamp, septex, pad4;
- int pad5;
+ short pr_back, pr_lamp, septex, ml_flag; /* ml_flag is for disable base material */
/* shaders */
short diff_shader, spec_shader;
@@ -97,7 +108,9 @@ typedef struct Material {
float rampfac_col, rampfac_spec;
struct MTex *mtex[10];
+ ListBase layers;
struct Ipo *ipo;
+ struct Group *group;
/* dynamic properties */
float friction, fh, reflect;
@@ -107,7 +120,7 @@ typedef struct Material {
/* yafray: absorption color, dispersion parameters and material preset menu */
float YF_ar, YF_ag, YF_ab, YF_dscale, YF_dpwr;
int YF_dsmp, YF_preset, YF_djit;
-
+
ScriptLink scriptlink;
} Material;
@@ -156,6 +169,8 @@ typedef struct Material {
#define MA_FULL_OSA 0x800000
#define MA_TANGENT_STR 0x1000000
#define MA_SHADBUF 0x2000000
+ /* note; we drop MA_TANGENT_STR later to become tangent_u */
+#define MA_TANGENT_V 0x4000000
#define MA_MODE_MASK 0x3ffffff /* all valid mode bits */
@@ -163,7 +178,8 @@ typedef struct Material {
#define MA_DIFF_LAMBERT 0
#define MA_DIFF_ORENNAYAR 1
#define MA_DIFF_TOON 2
-#define MA_DIFF_MINNAERT 3
+#define MA_DIFF_MINNAERT 3
+#define MA_DIFF_FRESNEL 4
/* spec_shader */
#define MA_SPEC_COOKTORR 0
@@ -205,10 +221,10 @@ typedef struct Material {
#define TEXCO_OSA 512
#define TEXCO_WINDOW 1024
#define NEED_UV 2048
- /* optim = use simpler AA */
-#define TEXCO_OPTIM 4096
- /* stored in vertex->accum, 1 D */
+#define TEXCO_TANGENT 4096
+ /* still stored in vertex->accum, 1 D */
#define TEXCO_STRAND 8192
+#define TEXCO_STRESS 16384
/* mapto */
#define MAP_COL 1
@@ -226,6 +242,7 @@ typedef struct Material {
#define MAP_AMB 2048
#define MAP_DISPLACE 4096
#define MAP_WARP 8192
+#define MAP_LAYER 16384
/* pr_type */
#define MA_FLAT 0
@@ -235,5 +252,13 @@ typedef struct Material {
/* pr_back */
#define MA_DARK 1
+/* MaterialLayer flag */
+#define ML_ACTIVE 1
+#define ML_RENDER 2
+#define ML_NEG_NORMAL 4
+#define ML_DIFFUSE 8
+#define ML_SPECULAR 16
+#define ML_ALPHA 32
+
#endif