static void OnUpdate()
        {
            if (camera.GetComponent <UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>() != null)
            {
                EditorApplication.update -= OnUpdate;

                UnityEngine.Rendering.Universal.UniversalAdditionalCameraData universalCameraData = camera.GetComponent <UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>();
                universalCameraData.renderPostProcessing = true;
            }
#endif
        }
        static StackObject *get_cameraStack_3(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.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.Universal.UniversalAdditionalCameraData instance_of_this_method = (UnityEngine.Rendering.Universal.UniversalAdditionalCameraData) typeof(UnityEngine.Rendering.Universal.UniversalAdditionalCameraData).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 0);
            __intp.Free(ptr_of_this_method);

            var result_of_this_method = instance_of_this_method.cameraStack;

            return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
        }
        static StackObject *SetRenderer_2(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Int32 @index = ptr_of_this_method->Value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            UnityEngine.Rendering.Universal.UniversalAdditionalCameraData instance_of_this_method = (UnityEngine.Rendering.Universal.UniversalAdditionalCameraData) typeof(UnityEngine.Rendering.Universal.UniversalAdditionalCameraData).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.SetRenderer(@index);

            return(__ret);
        }
Beispiel #4
0
        void CreateCubemap()
        {
            Cubemap cubemap = new Cubemap(size, defaultFormat, textureCreationFlags);
            Camera  cam     = this.gameObject.AddComponent <Camera>();

            cam.RenderToCubemap(cubemap);
            string cubemapPath = this.gameObject.scene.path.Replace(".unity", ".cubemap");

            AssetDatabase.CreateAsset(cubemap, cubemapPath);
            AssetImporter.GetAtPath(cubemapPath).SetAssetBundleNameAndVariant(assetBundleName, "");
            UnityEngine.Rendering.Universal.UniversalAdditionalCameraData cameraData = cam.GetComponent <UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>();
            if (cameraData)
            {
                DestroyImmediate(cameraData);
            }
            DestroyImmediate(cam);
            EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            Debug.Log("Cubemap created in " + cubemapPath);
        }
        private Camera CreateMirrorObjects(Camera currentCamera)
        {
            GameObject go =
                new GameObject($"Planar Refl Camera id{GetInstanceID().ToString()} for {currentCamera.GetInstanceID().ToString()}",
                               typeof(Camera));

            UnityEngine.Rendering.Universal.UniversalAdditionalCameraData lwrpCamData =
                go.AddComponent(typeof(UnityEngine.Rendering.Universal.UniversalAdditionalCameraData)) as UnityEngine.Rendering.Universal.UniversalAdditionalCameraData;
            UnityEngine.Rendering.Universal.UniversalAdditionalCameraData lwrpCamDataCurrent = currentCamera.GetComponent <UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>();
            lwrpCamData.renderShadows       = true; // turn off shadows for the reflection camera
            lwrpCamData.requiresColorOption = UnityEngine.Rendering.Universal.CameraOverrideOption.Off;
            lwrpCamData.requiresDepthOption = UnityEngine.Rendering.Universal.CameraOverrideOption.Off;
            var reflectionCamera = go.GetComponent <Camera>();

            reflectionCamera.transform.SetPositionAndRotation(transform.position, transform.rotation);
            //reflectionCamera.targetTexture = m_ReflectionTexture;
            reflectionCamera.allowMSAA = currentCamera.allowMSAA;
            reflectionCamera.depth     = -10;
            reflectionCamera.enabled   = false;
            reflectionCamera.allowHDR  = currentCamera.allowHDR;
            go.hideFlags = HideFlags.HideAndDontSave;

            return(reflectionCamera);
        }
Beispiel #6
0
        public void CaptureDepthMap()
        {
            //Generate the camera
            if (_depthCam == null)
            {
                GameObject go = new GameObject("depthCamera");//create the cameraObject
                go.hideFlags = HideFlags.HideAndDontSave;
                _depthCam    = go.AddComponent <Camera>();
            }

            if (_depthCam.GetComponent <UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>() == null)
            {
                UnityEngine.Rendering.Universal.UniversalAdditionalCameraData additionalCamData = _depthCam.gameObject.AddComponent <UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>();
                additionalCamData.renderShadows       = false;
                additionalCamData.requiresColorOption = UnityEngine.Rendering.Universal.CameraOverrideOption.Off;
                additionalCamData.requiresDepthOption = UnityEngine.Rendering.Universal.CameraOverrideOption.Off;
            }
            _depthCam.transform.position = Vector3.up * 4f; //center the camera on this water plane
            _depthCam.transform.up       = Vector3.forward; //face teh camera down
            _depthCam.enabled            = true;
            _depthCam.orthographic       = true;
            _depthCam.orthographicSize   = 250;//hardcoded = 1k area - TODO
            //_depthCam.depthTextureMode = DepthTextureMode.Depth;
            _depthCam.nearClipPlane = 0.1f;
            _depthCam.farClipPlane  = surfaceData._waterMaxVisibility;
            _depthCam.allowHDR      = false;
            _depthCam.allowMSAA     = false;
            _depthCam.cullingMask   = (1 << 10);
            //Generate RT
            if (!_depthTex)
            {
                _depthTex = new RenderTexture(1024, 1024, 24, RenderTextureFormat.Depth, RenderTextureReadWrite.Linear);
            }
            if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES2 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3)
            {
                _depthTex.filterMode = FilterMode.Point;
                _depthTex.wrapMode   = TextureWrapMode.Clamp;
            }
            _depthTex.name = "WaterDepthMap";
            //do depth capture
            _depthCam.targetTexture = _depthTex;
            _depthCam.Render();
            //Shader.SetGlobalTexture("_WaterDepthMap", _depthTex);
            // set depthbufferParams for depth cam(since it doesnt exist and only temporary)
            float   n       = _depthCam.nearClipPlane;
            float   f       = _depthCam.farClipPlane;
            Vector4 zParams = new Vector4(n, f, f / (f - n), f * n / (n - f));

            //Vector4 zParams = new Vector4(1-f/n, f/n, (1-f/n)/f, (f/n)/f);//2015
            Shader.SetGlobalVector("_depthCamZParams", zParams);

/*            #if UNITY_EDITOR
 *          Texture2D tex2D = new Texture2D(1024, 1024, TextureFormat.Alpha8, false);
 *          Graphics.CopyTexture(_depthTex, tex2D);
 *          byte[] image = tex2D.EncodeToPNG();
 *          System.IO.File.WriteAllBytes(Application.dataPath + "/WaterDepth.png", image);
 #endif*/

            _depthCam.enabled       = false;
            _depthCam.targetTexture = null;
        }