示例#1
0
        //Disable directional light and set ambient color to white for an albedo result
        void LightSetup()
        {
            //Set up lighting for a proper albedo color
            lights = FindObjectsOfType <Light>();
            foreach (Light light in lights)
            {
                if (light.type == LightType.Directional)
                {
                    light.gameObject.SetActive(false);
                }
            }

            //Store current settings to revert to
            ambientMode  = RenderSettings.ambientMode;
            ambientColor = RenderSettings.ambientLight;
            enableFog    = RenderSettings.fog;

            //Flat lighting
            RenderSettings.ambientMode  = UnityEngine.Rendering.AmbientMode.Flat;
            RenderSettings.ambientLight = Color.white;
            RenderSettings.fog          = false;

            //To account for Forward rendering being slightly darker, add a light
            if (useAlternativeRenderer)
            {
                if (!renderLight)
                {
                    renderLight = new GameObject().AddComponent <Light>();
                }
                renderLight.name = "renderLight";
                renderLight.type = LightType.Directional;
                renderLight.transform.localEulerAngles = new Vector3(90, 0, 0);
                renderLight.intensity = renderLightBrightness;
            }
        }
示例#2
0
        static bool FindSun()
        {
            if (sun == null)
            {
                sun = UnityEngine.Object.FindObjectsOfType <Light>()
                      .FirstOrDefault((Light light) => light.type == LightType.Directional && light.name == "Directional Light");

                if (sun == null)
                {
                    return(false);
                }

                moon = UnityEngine.Object.Instantiate <Light>(sun);

                if (sun == moon)
                {
                    throw new Exception("sun and moon are the same!");
                }

                moon.color = new Color(moon.color.r * 0.7f, moon.color.g * 0.85f, moon.color.b);

                Vector3 sunDefault = sun.transform.rotation.eulerAngles;
                defaultAltitude  = sunDefault.x;
                defaultAzimuth   = sunDefault.y;
                defaultIntensity = sun.intensity;

                defaultRotation     = RenderSettings.skybox.GetFloat("_Rotation");
                defaultExposure     = RenderSettings.skybox.GetFloat("_Exposure");
                defaultAmbientMode  = RenderSettings.ambientMode;
                defaultAmbientLight = RenderSettings.ambientLight;
                defaultFogColor     = RenderSettings.fogColor;

                Debug.Log(string.Format("[DayNight] defaults:\n" +
                                        "  >altitude={0}\n" +
                                        "  >azimuth={1}\n" +
                                        "  >intensity={2}\n" +
                                        "  >rotation={3}\n" +
                                        "  >exposure={4}\n" +
                                        "  >ambient mode={5}\n" +
                                        "  >ambient light={6}\n" +
                                        "  >fog color={7}",
                                        defaultAltitude,
                                        defaultAzimuth,
                                        defaultIntensity,
                                        defaultRotation,
                                        defaultExposure,
                                        defaultAmbientMode,
                                        defaultAmbientLight,
                                        defaultFogColor));

                Debug.Log("skybox shader: " + RenderSettings.skybox.shader.name);
            }

            return(true);
        }
 static int QPYX_set_ambientMode_YXQP(IntPtr L_YXQP)
 {
     try
     {
         UnityEngine.Rendering.AmbientMode QPYX_arg0_YXQP = (UnityEngine.Rendering.AmbientMode)ToLua.CheckObject(L_YXQP, 2, typeof(UnityEngine.Rendering.AmbientMode));
         UnityEngine.RenderSettings.ambientMode = QPYX_arg0_YXQP;
         return(0);
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
 static int set_ambientModeter(IntPtr L)
 {
     try
     {
         UnityEngine.Rendering.AmbientMode arg0 = (UnityEngine.Rendering.AmbientMode)LuaDLL.luaL_checknumber(L, 1);
         UnityEngine.RenderSettings.ambientMode = arg0;
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
 static int set_ambientMode(IntPtr L)
 {
     try
     {
         UnityEngine.Rendering.AmbientMode arg0 = (UnityEngine.Rendering.AmbientMode)ToLua.CheckObject(L, 2, typeof(UnityEngine.Rendering.AmbientMode));
         UnityEngine.RenderSettings.ambientMode = arg0;
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#6
0
    void OnEnable()
    {
        sunProperties      = GetComponent <SunProperties> ();
        m_TimeOfDayManager = FindObjectOfType <TimeOfDayManager> ();
        m_PrevAmbientMode  = RenderSettings.ambientMode;

        RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Trilight;
        if (sunProperties != null)
        {
            sunProperties.ambientMultiply = ambientMultiply;
            sunProperties.Run();
        }
    }
    void OnEnable()
    {
        sunProperties = GetComponent<SunProperties> ();
        m_TimeOfDayManager = FindObjectOfType<TimeOfDayManager> ();
        m_PrevAmbientMode = RenderSettings.ambientMode;

        RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Trilight;
        if (sunProperties != null)
        {
            sunProperties.ambientMultiply = ambientMultiply;
            sunProperties.Run ();
        }
    }
 static void RenderSettings_ambientMode(JSVCall vc)
 {
     if (vc.bGet)
     {
         var result = UnityEngine.RenderSettings.ambientMode;
         JSApi.setEnum((int)JSApi.SetType.Rval, (int)result);
     }
     else
     {
         UnityEngine.Rendering.AmbientMode arg0 = (UnityEngine.Rendering.AmbientMode)JSApi.getEnum((int)JSApi.GetType.Arg);
         UnityEngine.RenderSettings.ambientMode = arg0;
     }
 }
        static StackObject *set_ambientMode_13(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.Rendering.AmbientMode value = (UnityEngine.Rendering.AmbientMode) typeof(UnityEngine.Rendering.AmbientMode).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);

            UnityEngine.RenderSettings.ambientMode = value;

            return(__ret);
        }
    static int set_ambientMode(IntPtr L)
    {
#if UNITY_EDITOR
        ToluaProfiler.AddCallRecord("UnityEngine.RenderSettings.ambientMode");
#endif
        try
        {
            UnityEngine.Rendering.AmbientMode arg0 = (UnityEngine.Rendering.AmbientMode)ToLua.CheckObject(L, 2, typeof(UnityEngine.Rendering.AmbientMode));
            UnityEngine.RenderSettings.ambientMode = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
示例#11
0
    private void Start()
    {
        initialFogEnabled = RenderSettings.fog;

        initialFog      = RenderSettings.fogColor;
        initialFogStart = RenderSettings.fogStartDistance;
        initialFogEnd   = RenderSettings.fogEndDistance;

        initialAmbientMode  = RenderSettings.ambientMode;
        initialAmbientLight = RenderSettings.ambientLight;

        initialFarClip = cam.farClipPlane;

        if (fadeQuad != null)
        {
            fadeQuad.material.renderQueue = 3500;
        }
        else
        {
            Debug.LogError(name + ": NebulaCameraFog missing assigned Fade Quad! Nebula fog fading will not work correctly!");
        }
    }
示例#12
0
        public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameObjects, Camera camera, int layer)
        {
            mainCamera = camera;
            newLayer = layer;
            currentFacility = facility;

            originalCullingMask = camera.cullingMask;
            originalClearFlags = camera.clearFlags;
            originalAmbientLight = RenderSettings.ambientLight;
            originalSkybox = RenderSettings.skybox;
            originalLightmapData = LightmapSettings.lightmaps;
            originalAmbientMode = RenderSettings.ambientMode;

            // Create fake skybox
            skyCamera = new GameObject("NightSkyboxCamera", typeof(Camera));
            //            skyCamera.AddComponent<Camera>();
            skyCamera.GetComponent<Camera>().depth = mainCamera.depth - 1;
            skyCamera.GetComponent<Camera>().clearFlags = CameraClearFlags.Skybox;
            skyCamera.GetComponent<Camera>().cullingMask = 0;

            nightSkyboxMaterial = new Material(originalSkybox);

            // GalaxyTex_PositiveX should be viewed outside window
            // Debug.Log("LightsOut: Loading Night Sky Textures");
            foreach (Material material in Resources.FindObjectsOfTypeAll<Material>()) {
                Texture texture = material.mainTexture;
                if (texture) {
                    switch (material.name) {
                    case "ZP":
                        nightSkyboxMaterial.SetTexture("_FrontTex", material.mainTexture);
                        break;
                    case "ZN":
                        nightSkyboxMaterial.SetTexture("_BackTex", material.mainTexture);
                        break;
                    case "XP":
                        nightSkyboxMaterial.SetTexture("_LeftTex", material.mainTexture);
                        break;
                    case "XN":
                        nightSkyboxMaterial.SetTexture("_RightTex", material.mainTexture);
                        break;
                    case "YP":
                        nightSkyboxMaterial.SetTexture("_UpTex", material.mainTexture);
                        break;
                    case "YN":
                        nightSkyboxMaterial.SetTexture("_DownTex", material.mainTexture);
                        break;
                    default:
                        break;
                    }
                }
            }

            skyCamera.AddComponent<Skybox>();
            skyCamera.GetComponent<Skybox>().material = nightSkyboxMaterial;

            if (facility == EditorFacility.VAB) {
                switch (level) {
                case EditorLevel.Level1:
                    break;

                case EditorLevel.Level2:
                    break;

                case EditorLevel.Level3:
                    foreach (GameObject gameObject in gameObjects) {
                        ChangeLayersRecursively(gameObject, newLayer, "model_vab_interior_floor_cover_v20");
                    }
                    break;
                }
            }
            else if (facility == EditorFacility.SPH) {
                switch (level) {
                case EditorLevel.Level1:
                    break;

                case EditorLevel.Level2:
                    break;

                case EditorLevel.Level3:
                    foreach (GameObject gameObject in gameObjects) {
                        // These are all subsets of model_sph_interior_lights_v16
                        // Component_611_1 to 6 is window reflection
            //						ChangeLayersRecursively(gameObject, newLayer, "Component_611_1");
            //						ChangeLayersRecursively(gameObject, newLayer, "Component_611_2");
            //						ChangeLayersRecursively(gameObject, newLayer, "Component_611_3");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_611_4");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_611_5");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_611_6");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_749_1"); // Glow from Side Lights!
                        ChangeLayersRecursively(gameObject, newLayer, "Component_750_1"); // Lights!
                    }
                    break;
                }
            }
        }
        private void CheckAmbientAndCorrection()
        {
            if (_editor == null)
            {
                return;
            }
            if (!_editor._isAmbientCorrectionOption)
            {
                //Ambient 보정 옵션이 False이면 처리를 안함
                return;
            }

            //현재 Ambient 색상과 모드를 확인하자
            UnityEngine.Rendering.AmbientMode ambientMode = RenderSettings.ambientMode;
            Color ambientColor = RenderSettings.ambientLight;

            if (ambientMode == UnityEngine.Rendering.AmbientMode.Flat &&
                ambientColor.r <= 0.001f &&
                ambientColor.g <= 0.001f &&
                ambientColor.b <= 0.001f)
            {
                //Ambient가 검은색이다.
                return;
            }
            //이전
            ////Ambient 색상을 바꿀 것인지 물어보자
            #region [미사용 코드]
            //int iBtn = EditorUtility.DisplayDialogComplex(
            //										_editor.GetText(TEXT.DLG_AmbientColorCorrection_Title),
            //										_editor.GetText(TEXT.DLG_AmbientColorCorrection_Body),
            //										_editor.GetText(TEXT.Okay),
            //										_editor.GetText(TEXT.DLG_AmbientColorCorrection_Ignore),
            //										_editor.GetText(TEXT.Cancel)
            //										);

            //if(iBtn == 0)
            //{
            //	//색상을 바꾸자
            //	MakeAmbientLightToBlack();
            //}
            //else if(iBtn == 1)
            //{
            //	//무시하자
            //	_editor._isAmbientCorrectionOption = false;
            //	_editor.SaveEditorPref();
            //}
            #endregion

            //조건문 추가 19.6.22 : 현재의 기본 Material Set이 Ambient Color 색상이 검은색을 필요로할 경우
            if (_targetPortrait != null)
            {
                apMaterialSet defaultMatSet = _targetPortrait.GetDefaultMaterialSet();
                if (defaultMatSet != null)
                {
                    if (!defaultMatSet._isNeedToSetBlackColoredAmbient)
                    {
                        //현재의 Default MatSet이 검은색을 필요로 하지 않는 경우
                        return;
                    }
                }
            }
            //이후 : 별도의 다이얼로그 표시
            apDialog_AmbientCorrection.ShowDialog(_editor, (int)position.x, (int)position.y);
        }
示例#14
0
 static int set_ambientMode(IntPtr L)
 {
     UnityEngine.Rendering.AmbientMode arg0 = (UnityEngine.Rendering.AmbientMode)ToLua.CheckObject(L, 2, typeof(UnityEngine.Rendering.AmbientMode));
     UnityEngine.RenderSettings.ambientMode = arg0;
     return(0);
 }
示例#15
0
        public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameObjects, Camera camera, int layer)
        {
            mainCamera      = camera;
            newLayer        = layer;
            currentFacility = facility;

            originalCullingMask  = camera.cullingMask;
            originalClearFlags   = camera.clearFlags;
            originalAmbientLight = RenderSettings.ambientLight;
            originalSkybox       = RenderSettings.skybox;
            originalLightmapData = LightmapSettings.lightmaps;
            originalAmbientMode  = RenderSettings.ambientMode;

            // Create fake skybox
            skyCamera = new GameObject("NightSkyboxCamera", typeof(Camera));
//            skyCamera.AddComponent<Camera>();
            skyCamera.GetComponent <Camera>().depth       = mainCamera.depth - 1;
            skyCamera.GetComponent <Camera>().clearFlags  = CameraClearFlags.Skybox;
            skyCamera.GetComponent <Camera>().cullingMask = 0;

            nightSkyboxMaterial = new Material(originalSkybox);

            // GalaxyTex_PositiveX should be viewed outside window
            Debug.Log("LightsOut: Loading Night Sky Textures");
            foreach (Material material in Resources.FindObjectsOfTypeAll <Material>())
            {
                Texture texture = material.mainTexture;
                if (texture)
                {
                    switch (material.name)
                    {
                    case "ZP (Instance)":
                        nightSkyboxMaterial.SetTexture("_FrontTex", material.mainTexture);
                        break;

                    case "ZN (Instance)":
                        nightSkyboxMaterial.SetTexture("_BackTex", material.mainTexture);
                        break;

                    case "XP (Instance)":
                        nightSkyboxMaterial.SetTexture("_LeftTex", material.mainTexture);
                        break;

                    case "XN (Instance)":
                        nightSkyboxMaterial.SetTexture("_RightTex", material.mainTexture);
                        break;

                    case "YP (Instance)":
                        nightSkyboxMaterial.SetTexture("_UpTex", material.mainTexture);
                        break;

                    case "YN (Instance)":
                        nightSkyboxMaterial.SetTexture("_DownTex", material.mainTexture);
                        break;

                    default:
                        break;
                    }
                }
            }

            skyCamera.AddComponent <Skybox>();
            skyCamera.GetComponent <Skybox>().material = nightSkyboxMaterial;

            if (facility == EditorFacility.VAB)
            {
                switch (level)
                {
                case EditorLevel.Level1:
                    break;

                case EditorLevel.Level2:
                    break;

                case EditorLevel.Level3:
                    foreach (GameObject gameObject in gameObjects)
                    {
                        ChangeLayersRecursively(gameObject, newLayer, "model_vab_interior_floor_cover_v20");
                    }
                    break;
                }
            }
            else if (facility == EditorFacility.SPH)
            {
                switch (level)
                {
                case EditorLevel.Level1:
                    break;

                case EditorLevel.Level2:
                    break;

                case EditorLevel.Level3:
                    foreach (GameObject gameObject in gameObjects)
                    {
                        // These are all subsets of model_sph_interior_lights_v16
                        // Component_611_1 to 6 is window reflection
//						ChangeLayersRecursively(gameObject, newLayer, "Component_611_1");
//						ChangeLayersRecursively(gameObject, newLayer, "Component_611_2");
//						ChangeLayersRecursively(gameObject, newLayer, "Component_611_3");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_611_4");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_611_5");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_611_6");
                        ChangeLayersRecursively(gameObject, newLayer, "Component_749_1");                         // Glow from Side Lights!
                        ChangeLayersRecursively(gameObject, newLayer, "Component_750_1");                         // Lights!
                    }
                    break;
                }
            }
        }