美文网首页
自定义色彩梯度LUT生成

自定义色彩梯度LUT生成

作者: techiz | 来源:发表于2019-02-04 05:31 被阅读0次

    今天才知道Unity自己就有个很方便的Gradient Editor, 于是我们不用频繁切换Photoshop就能很方便快捷的制作一张自定义一维Color LUT。

    Inspector界面
    自带梯度编辑器
    生成的纹理
    原理也很简单,使用Gradient.Evaluate直接对Gradient Class的公共实例采样就行(Wrap Mode要设置成Clamp),然后用OnInspectorGUI增加一个按钮用于调用生成文件的方法。
    using UnityEngine;
    using System.Collections;
    using System.IO;
    
    public class GradientTexture : MonoBehaviour 
    {
        public Gradient gradient = new Gradient();
        public int resolution = 256;
        public string fileName;
    
        private Texture2D texture;
    
        public Texture2D Generate(bool makeNoLongerReadable = false)
        {
            Texture2D tex = new Texture2D(resolution, 1, TextureFormat.ARGB32, false, true);
            tex.filterMode = FilterMode.Bilinear;
            tex.wrapMode = TextureWrapMode.Clamp;
            tex.anisoLevel = 1;
    
    
            Color[] colors = new Color[resolution];
            float div = (float)resolution;
            for (int i = 0; i < resolution; ++i)
            {
                float t = (float)i/div;
                colors[i] = gradient.Evaluate(t);
            }
            tex.SetPixels(colors);
            tex.Apply(false, makeNoLongerReadable);
    
            return tex;
        }
    
        public void GenerateFile()
        {
            byte[] bytes = texture.EncodeToPNG();
            File.WriteAllBytes(Application.dataPath + "/Textures/" + fileName + ".png", bytes);
        }
    
        public void Refresh()
        {
            if (texture != null)
            {
                DestroyImmediate(texture);
            }
            texture = Generate();
    
        }
            
        void OnDestroy()
        {
            if (texture != null)
            {
                DestroyImmediate(texture);
            }
        }
    }
    

    这里是直接生成为一个PNG文件用于材质,当然也可以在脚本中直接SetTexture完成。另外我们还能够在Update里实时地去生成我们想要的梯度,给制作不同的效果带来一种新的思路。

    相关文章

      网友评论

          本文标题:自定义色彩梯度LUT生成

          本文链接:https://www.haomeiwen.com/subject/ioxpsqtx.html