public void Enter(Camera camera) { if (textureNumber == null) { textureNumber = Resources.Load <Texture>("Numbers_64pt_alpha"); } if (materialClearOpaque == null) { materialClearOpaque = new Material(ShadingMaterial.pixelOverdrawClear); } if (materialDisplayShowAlpha == null) { materialDisplayShowAlpha = new Material(ShadingMaterial.pixelOverdrawShowAlpha); } if (materialApply == null) { materialApply = new Material(ShadingMaterial.pixelOverdrawApply); } targetCamera = camera; // shading renderers List <IReplacementRenderer> replacementRenderers = UtilityReplacementRenderer.FindReplacementRenderers(ReplacementRendererSource.Renderer | ReplacementRendererSource.CanvasRenderer); shadingRenderers = new List <ShadingRenderer>(replacementRenderers.Count); foreach (IReplacementRenderer replacementRenderer in replacementRenderers) { ShadingRenderer shadingRenderer = new ShadingRenderer(replacementRenderer); shadingRenderer.Shading(); shadingRenderers.Add(shadingRenderer); } RefreshShading(); // command buffer commandBufferBeforeForwardAlpha = new CommandBuffer() { name = "PixelOvedraw ForwardAlpha" }; targetCamera.AddCommandBuffer(CameraEvent.BeforeForwardAlpha, commandBufferBeforeForwardAlpha); commandBufferBeforeImageEffects = new CommandBuffer() { name = "PixelOvedraw BeforeImageEffects" }; targetCamera.AddCommandBuffer(CameraEvent.BeforeImageEffects, commandBufferBeforeImageEffects); // calculation appropriate int sizeX = 60; int sizeY = (int)(60 / targetCamera.aspect); gridSize = new Vector2(sizeX, sizeY); RecalculateGrids(); setting.showAlpha = false; setting.refreshStatistics = true; setting.checkPlatformRenderingConvension = false; }
public void Enter(Camera camera) { // shading renderers List <IReplacementRenderer> replacementRenderers = UtilityReplacementRenderer.FindReplacementRenderers(ReplacementRendererSource.ParticleSystem); shadingRenderers = new List <ShadingRenderer>(replacementRenderers.Count); foreach (IReplacementRenderer replacementRenderer in replacementRenderers) { ShadingRenderer shadingRenderer = new ShadingRenderer(replacementRenderer); shadingRenderer.Shading(); shadingRenderers.Add(shadingRenderer); } RefreshShading(); }
public void Enter(Camera camera) { CreateOverdrawBuffer(camera); // collect all materials of sceneView // although this is not a good method, but we can't directly replace renderer's shader with uniforms // no UI and CommandBuffer now List <Renderer> allRenderers = UtilityCommon.FindObjectsOfAll <Renderer>(); shadingRenderers = new List <ShadingRenderer>(allRenderers.Count); foreach (Renderer renderer in allRenderers) { ShadingRenderer shadingRenderer = new ShadingRenderer(renderer, new Vector2(overdrawBuffer.width, overdrawBuffer.height)); shadingRenderer.Shading(); shadingRenderers.Add(shadingRenderer); } }