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:
authorCampbell Barton <ideasman42@gmail.com>2012-08-19 15:01:31 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-19 15:01:31 +0400
commit19885babaf8b6e8197a8a63ee239ed85c208bef9 (patch)
treeea3b576170207e7bbbbfaf650779cd3bb5920e11 /source/blender/modifiers/intern
parent78f393f0c3789221603cde786b66b04bcf164594 (diff)
parent27a8487070b37e6243608571b623e0c5fa279ced (diff)
svn merge ^/trunk/blender -r49800:49900
Diffstat (limited to 'source/blender/modifiers/intern')
-rw-r--r--source/blender/modifiers/intern/MOD_boolean_util.c2
-rw-r--r--source/blender/modifiers/intern/MOD_displace.c21
2 files changed, 14 insertions, 9 deletions
diff --git a/source/blender/modifiers/intern/MOD_boolean_util.c b/source/blender/modifiers/intern/MOD_boolean_util.c
index 9ff35c227de..bded11ddfa7 100644
--- a/source/blender/modifiers/intern/MOD_boolean_util.c
+++ b/source/blender/modifiers/intern/MOD_boolean_util.c
@@ -632,7 +632,7 @@ int NewBooleanMesh(Scene *scene, Base *base, Base *base_select, int int_op_type)
/* add materials to object */
for (a = 0; a < totmat; a++)
- assign_material(ob_new, mat[a], a + 1);
+ assign_material(ob_new, mat[a], a + 1, BKE_MAT_ASSIGN_USERPREF);
MEM_freeN(mat);
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c
index 01592d63bb2..21cbc2b766c 100644
--- a/source/blender/modifiers/intern/MOD_displace.c
+++ b/source/blender/modifiers/intern/MOD_displace.c
@@ -140,8 +140,7 @@ static void foreachTexLink(ModifierData *md, Object *ob,
static int isDisabled(ModifierData *md, int UNUSED(useRenderParams))
{
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
-
- return (!dmd->texture || dmd->strength == 0.0f);
+ return ((!dmd->texture && dmd->direction == MOD_DISP_DIR_RGB_XYZ) || dmd->strength == 0.0f);
}
static void updateDepgraph(ModifierData *md, DagForest *forest,
@@ -176,8 +175,9 @@ static void displaceModifier_do(
int defgrp_index;
float (*tex_co)[3];
float weight = 1.0f; /* init value unused but some compilers may complain */
+ const float delta_fixed = 1.0f - dmd->midlevel; /* when no texture is used, we fallback to white */
- if (!dmd->texture) return;
+ if (!dmd->texture && dmd->direction == MOD_DISP_DIR_RGB_XYZ) return;
if (dmd->strength == 0.0f) return;
mvert = CDDM_get_verts(dm);
@@ -191,17 +191,22 @@ static void displaceModifier_do(
for (i = 0; i < numVerts; i++) {
TexResult texres;
- float delta = 0, strength = dmd->strength;
+ float strength = dmd->strength;
+ float delta;
if (dvert) {
weight = defvert_find_weight(dvert + i, defgrp_index);
if (weight == 0.0f) continue;
}
- texres.nor = NULL;
- get_texture_value(dmd->texture, tex_co[i], &texres);
-
- delta = texres.tin - dmd->midlevel;
+ if (dmd->texture) {
+ texres.nor = NULL;
+ get_texture_value(dmd->texture, tex_co[i], &texres);
+ delta = texres.tin - dmd->midlevel;
+ }
+ else {
+ delta = delta_fixed; /* (1.0f - dmd->midlevel) */ /* never changes */
+ }
if (dvert) strength *= weight;