diff options
author | Jorge Bernal <jbernalmartinez@gmail.com> | 2015-03-22 20:13:53 +0300 |
---|---|---|
committer | Jorge Bernal <jbernalmartinez@gmail.com> | 2015-03-22 20:19:49 +0300 |
commit | e7d051043dc82c2991eb491e0630d9b1065934c3 (patch) | |
tree | 83e6c88e2ebdfca3ffb50814d66c525c5d5bb231 /source/blender/makesdna/DNA_object_types.h | |
parent | 0b4a71b07245d5370a02fae4dbde9195c9c58881 (diff) |
BGE: New hysteresis offset to improve LOD level transitions
This change introduces a new hysteresis parameter that it will be added
or subtracted to/from the LOD distance to avoid popping when a LOD
object moves close to the LOD transition continuously.
Then, we have the following:
- a new LOD Hysteresis setting per scene (default 10%) which is located
in Scene context --> Level of Detail panel. This scene parameter also
will active/deactive the scene hysteresis.
- and a new LOD Hysteresis setting per object (default 10%) which is
located in Object context --> Levels of Detail panel. The LOD hysteresis
setting per object (if active) will overwrite the hysteresis setting per
scene value.
For the new blends: the hysteresis setting per scene would be active by
default and the per object would be inactive by default.
For the old blends: both hysteresis settings (per scene and per object)
would be inactive by default. A quick way to take advantage of this
feature for old blends would be to activate the hysteresis parameter in
the scene context -> Level of Detail panel
Reviewers: campbellbarton, kupoman, moguri
Reviewed By: kupoman, moguri
Subscribers: nonamejuju, lordodin
Differential Revision: https://developer.blender.org/D957
Diffstat (limited to 'source/blender/makesdna/DNA_object_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 2699bb5f22f..4cb979c57b7 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -109,7 +109,8 @@ typedef struct LodLevel { struct LodLevel *next, *prev; struct Object *source; int flags; - float distance; + float distance, pad; + int obhysteresis; } LodLevel; typedef struct Object { @@ -484,6 +485,7 @@ enum { enum { OB_LOD_USE_MESH = 1 << 0, OB_LOD_USE_MAT = 1 << 1, + OB_LOD_USE_HYST = 1 << 2, }; |