91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ShaderLab Syntax 基本語法

發布時間:2020-07-26 08:41:17 來源:網絡 閱讀:651 作者:慕婧 欄目:開發技術

本文為個人從Unity文檔翻譯所得,如要轉載請注明源博客地址:http://ymdzz.blog.51cto.com


ShaderLab Syntax 基本語法


Unity里的所有的Shader文件都是用一種說明性語言(declarative language)來編寫。


在Shader文件里,用括號包含的語法來聲明用于描述Shader的變量。

例如顯示哪一些Shader屬性(shader properties)到Material的監視面板中;做哪種硬件回滾操作;使用哪一種混合模式(blending modes)等等。而真正的Shader代碼寫在一個CGPROGRAM片段中。


Shader文件的第一個定義就是Shader的名字,每一個文件都必須定義一個(而且只能定義一個)Shader。Material所使用的Shader定義了有多少個物體要被渲染。


語法(Syntax)

Shader "name" { [Properties] Subshaders [Fallback] [CustomEditor] }


它將會出現在Material的監視面板中,Shader可以定義成一系列的屬性,并顯示在Material的監視面板中。接著是一系列的SubShader,再往下是任意的回滾(fallback)或者是自定義編輯器聲明。


細節(Details)

屬性(Properties)

Shader可以有一系列的屬性,任何定義在Shader里的屬性都會顯示在material的監視面板中,

典型的屬性包括物體的顏色、貼圖或者是Shader要用到的任意變量。


SubShaders & Fallback

每一個Shader包含了一系列的SubShader,至少要有一個,當加載一個Shader的時候,Unity會按順序調用這一系列的SubShader,并且采用第一個支持當前用戶機器的SubShader,如果沒有一個SubShader可以被支持,那么Unity將會嘗試使用回滾操作。


不同的顯卡有不同的性能,這是一個所有游戲開發者都會遇到的不變的困擾,你想你的游戲運行在高端配置機器上效果更華麗,但是又不想讓游戲只能在3%的機器上跑。于是SubShader出現了,你可以創建一個擁有所有華麗效果的SubShader,同時準備更多的SubShader用于低端的顯卡,這些SubShader會實現你想在低端機器上跑的效果,或者更多的效果細節。


Shader的LOD(level of detail),即細節等級,和Shader replacement是兩個在SubShader上的技術點。


例子:

以下是一個簡單的Shader:

// colored vertex lighting

Shader "Simple colored lighting"

{

    // a single color property

    Properties {

        _Color ("Main Color", Color) = (1,.5,.5,1)

    }

    // define one subshader

    SubShader

    {

        // a single pass in our subshader

        Pass

        {

            // use fixed function per-vertex lighting

            Material

            {

                Diffuse [_Color]

            }

            Lighting On

        }

    }

}


這一個Shader定義了一個顏色屬性_Color,將會以MainColor這個名字顯示在Material的監視面板上,默認值是(1, 0.5, 0.5, 1),然后定義了一個SubShader,這個SubShader由一個Pass組成,這個Pass開啟了fixed-function vertex lighting和為它創建了一個基本的Material。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

思南县| 建昌县| 巴马| 大城县| 额济纳旗| 阿克| 玉林市| 阳朔县| 依兰县| 盐亭县| 呼和浩特市| 衢州市| 从江县| 阳原县| 天长市| 新津县| 喜德县| 南投市| 高尔夫| 无极县| 海兴县| 平乡县| 观塘区| 乌恰县| 丹凤县| 水富县| 沁阳市| 庆云县| 博野县| 阿合奇县| 邛崃市| 惠州市| 通城县| 肇源县| 尼勒克县| 荣昌县| 鄂托克旗| 定西市| 萍乡市| 页游| 永州市|