本文為個(gè)人從Unity文檔翻譯所得,如要轉(zhuǎn)載請(qǐng)注明源博客地址:http://ymdzz.blog.51cto.com
成都創(chuàng)新互聯(lián)公司成立于2013年,先為紅安等服務(wù)建站,紅安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為紅安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。ShaderLab Syntax 基本語(yǔ)法
Unity里的所有的Shader文件都是用一種說明性語(yǔ)言(declarative language)來編寫。
在Shader文件里,用括號(hào)包含的語(yǔ)法來聲明用于描述Shader的變量。
例如顯示哪一些Shader屬性(shader properties)到Material的監(jiān)視面板中;做哪種硬件回滾操作;使用哪一種混合模式(blending modes)等等。而真正的Shader代碼寫在一個(gè)CGPROGRAM片段中。
Shader文件的第一個(gè)定義就是Shader的名字,每一個(gè)文件都必須定義一個(gè)(而且只能定義一個(gè))Shader。Material所使用的Shader定義了有多少個(gè)物體要被渲染。
語(yǔ)法(Syntax)
Shader "name" { [Properties] Subshaders [Fallback] [CustomEditor] }
它將會(huì)出現(xiàn)在Material的監(jiān)視面板中,Shader可以定義成一系列的屬性,并顯示在Material的監(jiān)視面板中。接著是一系列的SubShader,再往下是任意的回滾(fallback)或者是自定義編輯器聲明。
細(xì)節(jié)(Details)
屬性(Properties)
Shader可以有一系列的屬性,任何定義在Shader里的屬性都會(huì)顯示在material的監(jiān)視面板中,
典型的屬性包括物體的顏色、貼圖或者是Shader要用到的任意變量。
SubShaders & Fallback
每一個(gè)Shader包含了一系列的SubShader,至少要有一個(gè),當(dāng)加載一個(gè)Shader的時(shí)候,Unity會(huì)按順序調(diào)用這一系列的SubShader,并且采用第一個(gè)支持當(dāng)前用戶機(jī)器的SubShader,如果沒有一個(gè)SubShader可以被支持,那么Unity將會(huì)嘗試使用回滾操作。
不同的顯卡有不同的性能,這是一個(gè)所有游戲開發(fā)者都會(huì)遇到的不變的困擾,你想你的游戲運(yùn)行在高端配置機(jī)器上效果更華麗,但是又不想讓游戲只能在3%的機(jī)器上跑。于是SubShader出現(xiàn)了,你可以創(chuàng)建一個(gè)擁有所有華麗效果的SubShader,同時(shí)準(zhǔn)備更多的SubShader用于低端的顯卡,這些SubShader會(huì)實(shí)現(xiàn)你想在低端機(jī)器上跑的效果,或者更多的效果細(xì)節(jié)。
Shader的LOD(level of detail),即細(xì)節(jié)等級(jí),和Shader replacement是兩個(gè)在SubShader上的技術(shù)點(diǎn)。
例子:
以下是一個(gè)簡(jiǎn)單的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
}
}
}
這一個(gè)Shader定義了一個(gè)顏色屬性_Color,將會(huì)以MainColor這個(gè)名字顯示在Material的監(jiān)視面板上,默認(rèn)值是(1, 0.5, 0.5, 1),然后定義了一個(gè)SubShader,這個(gè)SubShader由一個(gè)Pass組成,這個(gè)Pass開啟了fixed-function vertex lighting和為它創(chuàng)建了一個(gè)基本的Material。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。