Added support for setting the fusion distance directly in SceneView, defaults

to the original behavior of using the values from the Camera if attached.
This commit is contained in:
Robert Osfield
2002-09-04 10:49:17 +00:00
parent 6ff24b338f
commit f574d0dd68
3 changed files with 51 additions and 16 deletions

View File

@@ -27,6 +27,9 @@ SceneView::SceneView(DisplaySettings* ds)
_LODBias = 1.0f;
_smallFeatureCullingPixelSize = 3.0f;
_fusionDistanceMode = USE_CAMERA_FUSION_DISTANCE;
_fusionDistanceValue = 1.0f;
_lightingMode=HEADLIGHT;
_prioritizeTextures = false;
@@ -217,12 +220,22 @@ void SceneView::cull()
{
float fusionDistance = _displaySettings->getScreenDistance();
if (_camera.valid())
switch(_fusionDistanceMode)
{
fusionDistance = _camera->getFusionDistance();
case(USE_CAMERA_FUSION_DISTANCE):
if (_camera.valid())
{
fusionDistance = _camera->getFusionDistance();
}
break;
case(USE_FUSION_DISTANCE_VALUE):
fusionDistance = _fusionDistanceValue;
break;
case(PROPORTIONAL_TO_SCREEN_DISTANCE):
fusionDistance *= _fusionDistanceValue;
break;
}
float iod = _displaySettings->getEyeSeparation();
float sd = _displaySettings->getScreenDistance();
float es = 0.5f*iod*(fusionDistance/sd);