private RTECamera _CreateCamera(Camera camera, CameraEvent cameraEvent, bool createMeshesCache, bool createRenderersCache) { bool wasActive = camera.gameObject.activeSelf; camera.gameObject.SetActive(false); RTECamera rteCamera = camera.gameObject.AddComponent <RTECamera>(); rteCamera.Event = cameraEvent; if (createMeshesCache) { MeshesCache meshesCache = gameObject.AddComponent <MeshesCache>(); meshesCache.RefreshMode = CacheRefreshMode.Manual; rteCamera.MeshesCache = meshesCache; } if (createRenderersCache) { RenderersCache renderersCache = gameObject.AddComponent <RenderersCache>(); rteCamera.RenderersCache = renderersCache; } camera.gameObject.SetActive(wasActive); return(rteCamera); }
public IMeshesCache CreateMeshesCache(CameraEvent cameraEvent) { MeshesCache cache = gameObject.AddComponent <MeshesCache>(); cache.RefreshMode = CacheRefreshMode.Manual; List <RTECamera> rteCameras = new List <RTECamera>(); foreach (GameObject camera in m_cameras) { CreateRTECamera(camera, cameraEvent, cache, rteCameras); } m_meshesCache.Add(cache, new Data(cache, cameraEvent, rteCameras)); return(cache); }
public IRTECamera CreateCamera(Camera camera) { RenderersCache renderersCache = camera.gameObject.AddComponent <RenderersCache>(); MeshesCache meshesCache = camera.gameObject.AddComponent <MeshesCache>(); meshesCache.RefreshMode = CacheRefreshMode.Manual; RTECamera rteCamera = camera.gameObject.AddComponent <RTECamera>(); rteCamera.RenderersCache = renderersCache; rteCamera.MeshesCache = meshesCache; if (RenderPipelineInfo.Type == RPType.Standard) { rteCamera.Event = CameraEvent.BeforeImageEffects; } else { rteCamera.Event = CameraEvent.AfterImageEffectsOpaque; } return(rteCamera); }