自定義色彩梯度LUT生成

今天才知道Unity自己就有個(gè)很方便的Gradient Editor, 于是我們不用頻繁切換Photoshop就能很方便快捷的制作一張自定義一維Color LUT。

Inspector界面

自帶梯度編輯器

生成的紋理

原理也很簡(jiǎn)單,使用Gradient.Evaluate直接對(duì)Gradient Class的公共實(shí)例采樣就行(Wrap Mode要設(shè)置成Clamp),然后用OnInspectorGUI增加一個(gè)按鈕用于調(diào)用生成文件的方法。

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);
        }
    }
}

這里是直接生成為一個(gè)PNG文件用于材質(zhì),當(dāng)然也可以在腳本中直接SetTexture完成。另外我們還能夠在Update里實(shí)時(shí)地去生成我們想要的梯度,給制作不同的效果帶來(lái)一種新的思路。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、Unity簡(jiǎn)介 1. Unity界面 Shift + Space : 放大界面 Scene界面按鈕渲染模式2D...
    MYves閱讀 8,392評(píng)論 0 22
  • This article is a record of my journey to learn Game Deve...
    蔡子聰閱讀 3,859評(píng)論 0 9
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,198評(píng)論 4 61
  • 初次認(rèn)識(shí)靜,她的人,像她的名字一樣安靜,人群中你都沒(méi)辦法找到她,瘦小而安靜,但她卻又像一抹凈蓮一樣,潔凈,清麗,望...
    墨香雨瀾閱讀 647評(píng)論 4 3
  • 錢(qián)穆說(shuō):“古往今來(lái)有大成就者,訣竅無(wú)他,都是能人肯下笨勁。” 心在一藝,其藝必工,一心在一職,其職必舉。成長(zhǎng)不是一...
    谷馬礪兵閱讀 266評(píng)論 0 1