// Mesh-Render Mode Drawing static public void OnRender(LightingMainBuffer2D mainBuffer) { Camera camera = mainBuffer.cameraSettings.GetCamera(); if (camera == null) { return; } if (mainBuffer.cameraSettings.renderMode == CameraSettings.RenderMode.Disabled) { return; } if (Lighting2D.RenderingMode != RenderingMode.OnRender) { return; } OnRenderMode onRenderMode = OnRenderMode.Get(mainBuffer); if (onRenderMode == null) { return; } onRenderMode.UpdatePosition(); if (onRenderMode.meshRenderer != null) { if (mainBuffer.cameraSettings.renderMode == CameraSettings.RenderMode.Hidden) { onRenderMode.meshRenderer.enabled = false; return; } onRenderMode.meshRenderer.enabled = true; if (onRenderMode.meshRenderer.sharedMaterial != mainBuffer.GetMaterial()) { onRenderMode.meshRenderer.sharedMaterial = mainBuffer.GetMaterial(); } if (onRenderMode.meshRenderer.sharedMaterial == null) { onRenderMode.meshRenderer.sharedMaterial = mainBuffer.GetMaterial(); } } }
// Post-Render Mode Drawing public static void PostRender(LightingMainBuffer2D mainBuffer) { Camera camera = mainBuffer.cameraSettings.GetCamera(); if (camera == null) { return; } if (mainBuffer.cameraSettings.renderMode == CameraSettings.RenderMode.Disabled) { return; } if (Lighting2D.RenderingMode != RenderingMode.OnPostRender) { return; } if (Camera.current != camera) { return; } Rendering.Universal.Texture.Draw(mainBuffer.GetMaterial(), LightingPosition.GetCameraPlanePosition(camera), GetSize(camera), camera.transform.eulerAngles.z, LightingPosition.GetCameraPlanePosition(camera).z); }
public void Initialize(LightingMainBuffer2D mainBuffer) { gameObject.transform.parent = Buffers.Get().transform; meshRenderer = gameObject.AddComponent <MeshRenderer>(); meshRenderer.sharedMaterial = mainBuffer.GetMaterial(); BufferPreset bufferPreset = mainBuffer.GetBufferPreset(); bufferPreset.sortingLayer.ApplyToMeshRenderer(meshRenderer); // Disable Mesh Renderer Settings meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; meshRenderer.receiveShadows = false; meshRenderer.lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off; meshRenderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; meshRenderer.allowOcclusionWhenDynamic = false; UpdatePosition(); meshFilter = gameObject.AddComponent <MeshFilter>(); meshFilter.mesh = LightingRender2D.GetMesh(); }
// Graphics.Draw() Mode Drawing static public void PreRender(LightingMainBuffer2D mainBuffer) { Camera camera = mainBuffer.cameraSettings.GetCamera(); if (camera == null) { return; } if (mainBuffer.cameraSettings.renderMode == CameraSettings.RenderMode.Disabled) { return; } if (Lighting2D.RenderingMode != RenderingMode.OnPreRender) { return; } Graphics.DrawMesh(LightingRender2D.GetMesh(), Matrix4x4.TRS(LightingPosition.GetCameraPlanePosition(camera), camera.transform.rotation, GetSize(camera)), mainBuffer.GetMaterial(), 0, camera); }