Revision: 38783
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38783
Author: nazgul
Date: 2011-07-28 11:16:10 +0000 (Thu, 28 Jul 2011)
Log Message:
-----------
New option for multires modifier: Subdivide UVs
Enabled by default and also enabled for older filesm so
there should be no regressions.
In some cases it's useful to not use subdivided uvs for multires.
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
trunk/blender/source/blender/blenkernel/intern/multires.c
trunk/blender/source/blender/makesdna/DNA_modifier_types.h
trunk/blender/source/blender/makesrna/intern/rna_modifier.c
Modified:
trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
2011-07-28 11:05:28 UTC (rev 38782)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
2011-07-28 11:16:10 UTC (rev 38783)
@@ -394,6 +394,7 @@
col.operator("object.multires_higher_levels_delete", text="Delete
Higher")
col.operator("object.multires_reshape", text="Reshape")
col.operator("object.multires_base_apply", text="Apply Base")
+ col.prop(md, "use_subsurf_uv")
col.prop(md, "show_only_control_edges")
layout.separator()
Modified: trunk/blender/source/blender/blenkernel/intern/multires.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/multires.c 2011-07-28
11:05:28 UTC (rev 38782)
+++ trunk/blender/source/blender/blenkernel/intern/multires.c 2011-07-28
11:16:10 UTC (rev 38783)
@@ -465,12 +465,13 @@
return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0);
}
-static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int
lvl, int simple, int optimal)
+static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int
lvl, int simple, int optimal, int plain_uv)
{
SubsurfModifierData smd= {{NULL}};
smd.levels = smd.renderLevels = lvl;
- smd.flags |= eSubsurfModifierFlag_SubsurfUv;
+ if(!plain_uv)
+ smd.flags |= eSubsurfModifierFlag_SubsurfUv;
if(simple)
smd.subdivType = ME_SIMPLE_SUBSURF;
if(optimal)
@@ -591,7 +592,7 @@
/* subdivide the mesh to highest level without displacements */
cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- origdm = subsurf_dm_create_local(ob, cddm, totlvl, 0, 0);
+ origdm = subsurf_dm_create_local(ob, cddm, totlvl, 0, 0, mmd->flags &
eMultiresModifierFlag_PlainUv);
cddm->release(cddm);
/* calc disps */
@@ -626,7 +627,7 @@
/* create subsurf DM from original mesh at high level */
cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0);
+ highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0,
mmd->flags & eMultiresModifierFlag_PlainUv);
/* create multires DM from original mesh at low level */
lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple);
@@ -830,7 +831,7 @@
else cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- highdm = subsurf_dm_create_local(ob, cddm, totlvl,
mmd->simple, 0);
+ highdm = subsurf_dm_create_local(ob, cddm, totlvl,
mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv);
/* create multires DM from original mesh and
displacements */
lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl,
mmd->simple);
@@ -884,7 +885,7 @@
else cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl,
mmd->simple, 0);
+ subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl,
mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv);
cddm->release(cddm);
multiresModifier_disp_run(dm, me, 1, 0,
subdm->getGridData(subdm), mmd->totlvl);
@@ -927,7 +928,8 @@
return dm;
result = subsurf_dm_create_local(ob, dm, lvl,
- mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges);
+ mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges,
+ mmd->flags & eMultiresModifierFlag_PlainUv);
if(!local_mmd) {
ccgdm = (CCGDerivedMesh*)result;
@@ -1633,7 +1635,7 @@
MEM_freeN(vertCos);
/* scaled ccgDM for tangent space of object with applied scale */
- dm= subsurf_dm_create_local(ob, cddm, high_mmd.totlvl, high_mmd.simple,
0);
+ dm= subsurf_dm_create_local(ob, cddm, high_mmd.totlvl, high_mmd.simple,
0, mmd->flags & eMultiresModifierFlag_PlainUv);
cddm->release(cddm);
/*numGrids= dm->getNumGrids(dm);*/ /*UNUSED*/
Modified: trunk/blender/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_modifier_types.h 2011-07-28
11:05:28 UTC (rev 38782)
+++ trunk/blender/source/blender/makesdna/DNA_modifier_types.h 2011-07-28
11:16:10 UTC (rev 38783)
@@ -624,6 +624,7 @@
typedef enum {
eMultiresModifierFlag_ControlEdges = (1<<0),
+ eMultiresModifierFlag_PlainUv = (1<<1),
} MultiresModifierFlag;
typedef struct FluidsimModifierData {
Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2011-07-28
11:05:28 UTC (rev 38782)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2011-07-28
11:16:10 UTC (rev 38783)
@@ -805,6 +805,11 @@
RNA_def_property_boolean_sdna(prop, NULL, "flags",
eMultiresModifierFlag_ControlEdges);
RNA_def_property_ui_text(prop, "Optimal Display", "Skip
drawing/rendering of interior subdivided edges");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop= RNA_def_property(srna, "use_subsurf_uv", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flags",
eMultiresModifierFlag_PlainUv);
+ RNA_def_property_ui_text(prop, "Subdivide UVs", "Use subsurf to
subdivide UVs");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
static void rna_def_modifier_lattice(BlenderRNA *brna)
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs