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:
authorClément Foucault <foucault.clem@gmail.com>2017-01-23 20:36:30 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-01-23 20:36:30 +0300
commitc5ed9434791ec01a65756cd182e15f8744b7e6f3 (patch)
tree4dc3e0b20fb654523485fb54e462cb840508ce74 /source/blender/blenkernel/intern/material.c
parentefa46d7db0e395d6b1380432e5de5bf2a628c81d (diff)
Clay Material work.
Diffstat (limited to 'source/blender/blenkernel/intern/material.c')
-rw-r--r--source/blender/blenkernel/intern/material.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 54945242fe4..ad53d03f43a 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -111,6 +111,11 @@ void BKE_material_free(Material *ma)
BKE_icon_id_delete((ID *)ma);
BKE_previewimg_free(&ma->preview);
+
+ if (ma->clay.runtime) {
+ MEM_freeN(ma->clay.runtime);
+ ma->clay.runtime = NULL;
+ }
}
void BKE_material_init(Material *ma)
@@ -206,6 +211,17 @@ void BKE_material_init(Material *ma)
ma->mode2 = MA_CASTSHADOW;
ma->shade_flag = MA_APPROX_OCCLUSION;
ma->preview = NULL;
+
+ /* New engines */
+ ma->clay.matcap_rot = 0.0f;
+ ma->clay.matcap_hue = 0.5f;
+ ma->clay.matcap_sat = 0.5f;
+ ma->clay.matcap_val = 0.5f;
+ ma->clay.ssao_distance = 0.2;
+ ma->clay.ssao_attenuation = 1.0f;
+ ma->clay.ssao_factor_cavity = 1.0f;
+ ma->clay.ssao_factor_edge = 1.0f;
+ ma->clay.runtime = NULL;
}
Material *BKE_material_add(Main *bmain, const char *name)
@@ -247,6 +263,7 @@ Material *BKE_material_copy(Main *bmain, Material *ma)
BKE_previewimg_id_copy(&man->id, &ma->id);
BLI_listbase_clear(&man->gpumaterial);
+ man->clay.runtime = NULL;
BKE_id_copy_ensure_local(bmain, &ma->id, &man->id);
@@ -279,6 +296,7 @@ Material *localize_material(Material *ma)
man->nodetree = ntreeLocalize(ma->nodetree);
BLI_listbase_clear(&man->gpumaterial);
+ man->clay.runtime = NULL;
return man;
}
@@ -1698,6 +1716,7 @@ void copy_matcopybuf(Material *ma)
matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, G.main, false);
matcopybuf.preview = NULL;
BLI_listbase_clear(&matcopybuf.gpumaterial);
+ matcopybuf.clay.runtime = NULL;
matcopied = 1;
}