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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-01-25 14:39:56 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-01-25 14:39:56 +0300
commitcbb23d96bb4644bd4fdeadbfd790694e57983c53 (patch)
tree544b5674164199f17f423b94f976cdf12dadc756 /source/blender/blenkernel/intern/subsurf_ccg.c
parentaab5a7a4af19335f07231b30f86df8d2fc7bc9e7 (diff)
Added simplification back for quicker preview renders with less subdivision
levels, child particles, and shadow/SSS/AO quality.. Now also works on what is displayed in the 3d view instead of only rendering, see panel in the scene properties. Most file changes were to make scene available in the isDisabled modifier callback function.
Diffstat (limited to 'source/blender/blenkernel/intern/subsurf_ccg.c')
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 3997f83ed49..ef015208354 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -2506,7 +2506,9 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
CCGDerivedMesh *result;
if(editMode) {
- smd->emCache = _getSubSurf(smd->emCache, smd->levels, useAging, 0,
+ int levels= get_render_subsurf_level(&smd->modifier.scene->r, smd->levels);
+
+ smd->emCache = _getSubSurf(smd->emCache, levels, useAging, 0,
useSimple);
ss_sync_from_derivedmesh(smd->emCache, dm, vertCos, useSimple);
@@ -2518,7 +2520,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
CCGSubSurf *ss;
int levels;
- levels= smd->renderLevels; // XXX get_render_subsurf_level(&scene->r, smd->renderLevels);
+ levels= get_render_subsurf_level(&smd->modifier.scene->r, smd->renderLevels);
if(levels == 0)
return dm;
@@ -2533,6 +2535,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
} else {
int useIncremental = (smd->flags & eSubsurfModifierFlag_Incremental);
int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr;
+ int levels= get_render_subsurf_level(&smd->modifier.scene->r, smd->levels);
CCGSubSurf *ss;
/* It is quite possible there is a much better place to do this. It
@@ -2549,7 +2552,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
}
if(useIncremental && isFinalCalc) {
- smd->mCache = ss = _getSubSurf(smd->mCache, smd->levels,
+ smd->mCache = ss = _getSubSurf(smd->mCache, levels,
useAging, 0, useSimple);
ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
@@ -2563,7 +2566,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
smd->mCache = NULL;
}
- ss = _getSubSurf(NULL, smd->levels, 0, 1, useSimple);
+ ss = _getSubSurf(NULL, levels, 0, 1, useSimple);
ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
result = getCCGDerivedMesh(ss, drawInteriorEdges, useSubsurfUv, dm);