コード例 #1
0
        public static void DrawPost(LightingMainBuffer2D buffer)
        {
            if (buffer.cameraSettings.renderMode != CameraSettings.RenderMode.Draw)
            {
                return;
            }

            if (Lighting2D.RenderingMode != RenderingMode.OnPostRender)
            {
                return;
            }

            LightingRender2D.PostRender(buffer);
        }
コード例 #2
0
        private static void DarknessColor(Camera camera, BufferPreset bufferPreset)
        {
            Color color = bufferPreset.darknessColor;

            if (color.a > 0)
            {
                Material material = Lighting2D.materials.GetAlphaBlend();
                material.SetColor("_TintColor", color);
                material.mainTexture = null;

                float cameraRotation = -LightingPosition.GetCameraRotation(camera);

                Universal.Texture.Draw(material, Vector2.zero, LightingRender2D.GetSize(camera), cameraRotation, 0);
            }
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: takdw00/Project_Empty
        private static void ShadowAlpha(Camera camera)
        {
            Color color = new Color(0, 0, 0, (1f - Lighting2D.DayLightingSettings.alpha));

            if (color.a > 0)
            {
                color.r = 1f;
                color.g = 1f;
                color.b = 1f;

                Material material = Lighting2D.materials.GetAlphaBlend();
                material.mainTexture = null;
                material.SetColor("_TintColor", color);

                Universal.Texture.Draw(material, Vector2.zero, LightingRender2D.GetSize(camera), camera.transform.eulerAngles.z, 0);
            }
        }
コード例 #4
0
    public void UpdatePosition()
    {
        Camera camera = mainBuffer.cameraSettings.GetCamera();

        if (camera == null)
        {
            return;
        }


        transform.position = LightingPosition.GetCameraPlanePosition(camera);
        transform.rotation = camera.transform.rotation;

        // Local scale, not great
        transform.localScale = LightingRender2D.GetSize(camera);

        // transform.localScale = LightingRender2D.GetSize(camera);
    }
コード例 #5
0
        public static void DrawOn(LightingMainBuffer2D buffer)
        {
            if (buffer.cameraSettings.renderMode != CameraSettings.RenderMode.Draw)
            {
                return;
            }

            switch (Lighting2D.RenderingMode)
            {
            case RenderingMode.OnRender:
                LightingRender2D.OnRender(buffer);
                break;

            case RenderingMode.OnPreRender:
                LightingRender2D.PreRender(buffer);
                break;
            }
        }
コード例 #6
0
ファイル: LightSource.cs プロジェクト: takdw00/Project_Empty
        static public void Draw(Light2D light, Camera camera)
        {
            if (light.Buffer == null)
            {
                return;
            }

            if (light.isActiveAndEnabled == false)
            {
                return;
            }

            if (light.InAnyCamera() == false)
            {
                return;
            }

            Vector2 pos  = LightingPosition.GetPosition2D(-camera.transform.position);
            Vector2 size = new Vector2(light.size, light.size);

            if (light.IsPixelPerfect())
            {
                size = LightingRender2D.GetSize(camera);
                pos  = Vector2.zero;
            }
            else
            {
                pos += light.transform2D.position;
            }

            Color lightColor = light.color;

            lightColor.a = light.color.a / 2;

            Material material = Lighting2D.materials.GetLight();

            material.mainTexture = light.Buffer.renderTexture.renderTexture;
            material.SetColor("_TintColor", lightColor);

            Rendering.Universal.Texture.Draw(material, pos, size, 0);
        }
コード例 #7
0
    // 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);
    }
コード例 #8
0
    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();
    }
コード例 #9
0
    public void UpdateLight(Light2D id, MeshMode meshMode)       // Camera
    {
        if (meshModeMaterial != meshMode.materials)
        {
            meshModeMaterial = meshMode.materials;

            ClearMaterial();
        }

        if (meshModeShader != meshMode.shader)
        {
            meshModeShader = meshMode.shader;

            ClearMaterial();
        }

        Material[] materials = GetMaterials();

        if (materials == null)
        {
            return;
        }

        if (id.IsPixelPerfect())
        {
            Camera camera = Camera.main;

            Vector2 cameraSize     = LightingRender2D.GetSize(camera);
            Vector2 cameraPosition = LightingPosition.GetPosition2D(-camera.transform.position);

            transform.position = new Vector3(cameraPosition.x, cameraPosition.y, id.transform.position.z);

            transform.localScale = new Vector3(cameraSize.x, cameraSize.y, 1);
        }
        else
        {
            transform.position = id.transform.position;

            transform.localScale = new Vector3(id.size, id.size, 1);
        }

        transform.rotation = Quaternion.Euler(0, 0, 0);
        // transform.rotation = id.transform.rotation; // only if rotation enabled

        if (id.Buffer != null && meshRenderer != null)
        {
            Color lightColor = id.color;
            lightColor.a = id.meshMode.alpha;

            for (int i = 0; i < materials.Length; i++)
            {
                if (materials[i] == null)
                {
                    continue;
                }

                materials[i].SetColor("_TintColor", lightColor);
                materials[i].color = lightColor;

                materials[i].mainTexture = id.Buffer.renderTexture.renderTexture;
            }

            id.meshMode.sortingLayer.ApplyToMeshRenderer(meshRenderer);

            meshRenderer.sharedMaterials = GetMaterials();

            meshRenderer.enabled = true;

            meshFilter.mesh = GetMeshLight();
        }
    }