[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60994] trunk/blender/source/blender/ editors/object/object_bake.c: Enable multires bake to level 0
Sergey Sharybin
sergey.vfx at gmail.com
Tue Oct 29 17:43:57 CET 2013
Revision: 60994
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60994
Author: nazgul
Date: 2013-10-29 16:43:56 +0000 (Tue, 29 Oct 2013)
Log Message:
-----------
Enable multires bake to level 0
Uses trick with crating simple subdivided mesh with
level 1 and bakes against it.
>From quick tests seems to be working correct, more
tests are welcome.
Modified Paths:
--------------
trunk/blender/source/blender/editors/object/object_bake.c
Modified: trunk/blender/source/blender/editors/object/object_bake.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_bake.c 2013-10-29 16:06:21 UTC (rev 60993)
+++ trunk/blender/source/blender/editors/object/object_bake.c 2013-10-29 16:43:56 UTC (rev 60994)
@@ -156,12 +156,6 @@
break;
}
- if (mmd->lvl == 0) {
- BKE_report(op->reports, RPT_ERROR, "Multires data baking is not supported for preview subdivision level 0");
- ok = false;
- break;
- }
-
if (!me->mtpoly) {
BKE_report(op->reports, RPT_ERROR, "Mesh should be unwrapped before multires data baking");
@@ -214,28 +208,23 @@
DerivedMesh *dm;
MultiresModifierData *mmd = get_multires_modifier(scene, ob, 0);
Mesh *me = (Mesh *)ob->data;
+ MultiresModifierData tmp_mmd = *mmd;
+ DerivedMesh *cddm = CDDM_from_mesh(me, ob);
- *lvl = mmd->lvl;
-
- if (*lvl == 0) {
- DerivedMesh *tmp_dm = CDDM_from_mesh(me, ob);
-
- DM_set_only_copy(tmp_dm, CD_MASK_BAREMESH | CD_MASK_MTFACE);
-
- dm = CDDM_copy(tmp_dm);
- tmp_dm->release(tmp_dm);
+ if (mmd->lvl > 0) {
+ *lvl = mmd->lvl;
}
else {
- MultiresModifierData tmp_mmd = *mmd;
- DerivedMesh *cddm = CDDM_from_mesh(me, ob);
+ *lvl = 1;
+ tmp_mmd.simple = true;
+ }
- DM_set_only_copy(cddm, CD_MASK_BAREMESH | CD_MASK_MTFACE);
+ DM_set_only_copy(cddm, CD_MASK_BAREMESH | CD_MASK_MTFACE);
- tmp_mmd.lvl = *lvl;
- tmp_mmd.sculptlvl = *lvl;
- dm = multires_make_derived_from_derived(cddm, &tmp_mmd, ob, 0);
- cddm->release(cddm);
- }
+ tmp_mmd.lvl = *lvl;
+ tmp_mmd.sculptlvl = *lvl;
+ dm = multires_make_derived_from_derived(cddm, &tmp_mmd, ob, 0);
+ cddm->release(cddm);
return dm;
}
More information about the Bf-blender-cvs
mailing list