Ejemplo n.º 1
0
        void SetupMainCameras()
        {
            Camera[] cams = Camera.allCameras;
            scaledSpaceCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera ScaledSpace");
            farCamera         = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 01");
            nearCamera        = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 00");

            if (scaledSpaceCamera && farCamera && nearCamera)
            {
                farCameraShadowCascadeTweaker = (TweakFarCameraShadowCascades)farCamera.gameObject.AddComponent(typeof(TweakFarCameraShadowCascades));

                if (mainSettings.overrideNearClipPlane)
                {
                    Utils.LogDebug("Override near clip plane from:" + nearCamera.nearClipPlane.ToString() + " to:" + mainSettings.nearClipPlane.ToString());
                    nearCamera.nearClipPlane = mainSettings.nearClipPlane;
                }
            }
            else if (HighLogic.LoadedScene == GameScenes.MAINMENU)
            {
                //if are in main menu, where there is only 1 camera, affect all cameras to Landscape camera
                scaledSpaceCamera = Camera.allCameras.Single(_cam => _cam.name == "Landscape Camera");
                farCamera         = scaledSpaceCamera;
                nearCamera        = scaledSpaceCamera;
            }
            else if (HighLogic.LoadedScene == GameScenes.TRACKSTATION)
            {
                //if in trackstation, just to get rid of some nullrefs
                farCamera  = scaledSpaceCamera;
                nearCamera = scaledSpaceCamera;
            }
        }
Ejemplo n.º 2
0
        void SetupMainCameras()
        {
            Camera[] cams = Camera.allCameras;
            scaledSpaceCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera ScaledSpace");
            if (SystemInfo.graphicsDeviceVersion.Contains("Direct3D 11.0"))
            {
                unifiedCamera        = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 00");
                unifiedCameraEnabled = true;
                Utils.LogDebug("Using Unified Camera.");
            }
            else
            {
                farCamera            = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 01");
                nearCamera           = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 00");
                unifiedCameraEnabled = false;
                Utils.LogDebug("Not using Unified Camera.");
            }

            if (((scaledSpaceCamera && unifiedCamera) && unifiedCameraEnabled) || (!unifiedCameraEnabled && (scaledSpaceCamera && farCamera && nearCamera)))
            {
                farCameraShadowCascadeTweaker = (TweakFarCameraShadowCascades)ReturnProperCamera(false, false).gameObject.AddComponent(typeof(TweakFarCameraShadowCascades));
                setupClipPlanes();
            }
            else if (HighLogic.LoadedScene == GameScenes.MAINMENU)
            {
                //if are in main menu, where there is only 1 camera, affect all cameras to Landscape camera
                scaledSpaceCamera = Camera.allCameras.Single(_cam => _cam.name == "Landscape Camera");
                if (unifiedCameraEnabled)
                {
                    unifiedCamera = scaledSpaceCamera;
                }
                else
                {
                    scaledSpaceCamera = Camera.allCameras.Single(_cam => _cam.name == "Landscape Camera");
                    farCamera         = scaledSpaceCamera;
                    nearCamera        = scaledSpaceCamera;
                }
                // decide near clipplane depth, main menu needs like none
                if (HighLogic.LoadedScene == GameScenes.MAINMENU)
                {
                    ReturnProperCamera(false, false).nearClipPlane = 0.5f;
                }
            }
            else if (HighLogic.LoadedScene == GameScenes.TRACKSTATION)
            {
                //if in trackstation, just to get rid of some nullrefs
                if (unifiedCameraEnabled)
                {
                    unifiedCamera = scaledSpaceCamera;
                }
                else
                {
                    farCamera  = scaledSpaceCamera;
                    nearCamera = scaledSpaceCamera;
                }
            }
        }