discuz!cms
丰满人妻妓熟妇又伦精品软件 ,高清一级无码AV
匯寶盆 > 免費(fèi)分享區(qū) > CG教程 > Unity > Unity3D 初識(shí)Shader (一)
Unity3D 初識(shí)Shader (一)

最好一點(diǎn)涼光

資源數(shù):63個(gè)

目錄CONTENTS

一、Unity3D 初識(shí)Shader (一)

在線預(yù)覽PREVIEW

Unity3D 初識(shí)Shader (一)

Unity3D 初識(shí)Shader (一)

 我們都知道在unity中,Shader是擔(dān)當(dāng)著一個(gè)重要的角色,整個(gè)引擎的渲染是需要依靠Shader,今天小編就和大家一起來學(xué)習(xí)一下這個(gè)神奇的Shader吧!

    

    1.首先從意義上認(rèn)識(shí)Shader:

          Shader(著色器)是一段能夠針對(duì)3D對(duì)象進(jìn)行操作,并被GPU所執(zhí)行的程序;例如在一個(gè)3D場(chǎng)景中,一般會(huì)有多個(gè)的Shader,這些Shader中有的負(fù)責(zé)對(duì)3D對(duì)象進(jìn)行表面的處理,有的負(fù)責(zé)對(duì)3D對(duì)象的紋理進(jìn)行處理。


    2.在Unity中 Shader一般有三種類型:

       2.0 基本定義:

         2.0.0 Fixed Function Shader:(固定渲染管線著色器)基于用于高級(jí)Shader 在老顯卡死無法顯示的Fallback,可以使用ShaderLab語言;(固定渲染管線:就是功能固定的管線,比如物體表面光的折射,反射的算法是無法修改的,我們只能對(duì)這些功能進(jìn)行配置,比如開啟或關(guān)閉反射效果、霧化效果,然而這種管線功能固定,無法在程序上對(duì)物體細(xì)節(jié)的表現(xiàn)給予更多自由的控制)

         2.0.1 Vertex and Fragment Shader:最強(qiáng)大的Shader類型,屬于可編程渲染管線,使用CG/HLSL語法;(可編程渲染管線:可以根據(jù)特定的需求實(shí)現(xiàn)更多自己想要的特效)

         2.0.2 Surface Shader:是現(xiàn)在unity中最常用的Shader類型,使用中預(yù)制的光照模型來進(jìn)行光照運(yùn)算,使用CG/HLSL語法;


        2.1 三種Shader類型的共同點(diǎn):

          2.1.0 只有唯一一個(gè)根Shader 開始;

          2.1.1 Properties 參數(shù)部分、作用及語法是完全相同的;

          2.1.2 具體功能都在SubShader子著色器里面,并且Shader 會(huì)自上而下運(yùn)行第一個(gè)硬件能支持的子著色器,主要是為了對(duì)不同硬件的適配;

          2.1.3 都可以打標(biāo)簽,例如 Tags{"RenderType"="Opaque"} LOD 300 

          2.1.4 都可以使用Fallback

          2.1.5 都可以處理基本功能,例如光照慢反射、鏡面反射,當(dāng)然Vertex and Fragment Shader 和Surface Shader都能實(shí)現(xiàn)Fixed Function Shader實(shí)現(xiàn)不了的高級(jí)功能,例如基于UV的計(jì)算效果;

       2.2 三種Shader類型的不同點(diǎn):

           2.2.0 Fixed Function Shader 和 Vertex and Fragment Sahder 在SubShader  下面還有pass{},但是Surface  Shader 由于具體內(nèi)容已經(jīng)打包在光照模型,不能加pass{},否則會(huì)報(bào)錯(cuò)的;

           2.2.1 Fixed Function Shader 每句代碼之后沒有分號(hào)";",但是Vertex and Fragment Sahder和 Surface Shader 每句代碼后必須要加";";

           2.2.2 代碼結(jié)構(gòu)不同

                Fixed Function Shader 中SubShader結(jié)構(gòu):

                Material{}

                ......

                SetTexture[_MainTex]{......}

                Vertex and Fragment Shader結(jié)構(gòu):

                CGPROGRAM

                #pragma vertex vert

                #pragram fragment frag

                ......

                #include "UnityCG.cginc"

                ENDCG

                Surface Shader 的結(jié)構(gòu):

                CGPROGRAM

                #pragma surface surf Lambert

                ......

                ENDCG

      3.認(rèn)識(shí)Shader 開發(fā)的語言

         CG(Nvida 公司開發(fā)的c for graphics 計(jì)算機(jī)圖形C語言超集):CG 程序可以根據(jù)運(yùn)行時(shí)的需要或者事先編譯成GPU匯編代碼;

         HLSL(基于DirectX的High Level Shading Language):只能供微軟Direct3D 以及XNA使用,移植性差;

         GLSL(基于OpenGL的OpenGL Shading Language):只能OpenGL使用,具有良好跨平臺(tái)和移植性;

         ShaderLab(UnityShader):unity3d 上自帶的一套Shader語言,核心頂點(diǎn)和片段程序是由CG/HLSL語言編寫,可以對(duì)外提供一系列屬性的輸入接口(在UnityEditor材質(zhì)Inspector 面板中用圖形化方式設(shè)置屬性和選擇資源),輸入的參數(shù)最終還是由CG/HLSL 程序來處理。

      4.談?wù)凷hader和Material 之間的關(guān)系

        我們都知道在unity中Shader和Material兩者是緊密聯(lián)系的,Shader 包含定義屬性和資源使用種類的代碼,Material 是調(diào)整屬性和分配資源;

        再簡(jiǎn)單來說:Shader(著色器)是代碼,可以定義輸入的屬性和資源;而材質(zhì)需要關(guān)聯(lián)一個(gè)著色器,并且通過材質(zhì)Inspector面板,可以圖形化的選擇資源(如紋理)或者調(diào)整屬性;

       Shader常用屬性:

       2D: _MainTex("Base(RGB)",2D)=" White"{}  //定義2D紋理(2次方)屬性,資源可以在材質(zhì)里面選擇,{}表示選擇紋理屬性

       Color:_Color("Main Color",Color)={1,1,1,1} //定義顏色屬性,RGB+Alpha

       Range:_RangeValue("RangeValue",Range(0,1))=0.5 //定義一個(gè)浮點(diǎn)數(shù)屬性

       Rect:_RectMap("Rect Map",Rect)=""{} //定義長(zhǎng)方形(非2次方)紋理屬性

       Cube:_CubeMap("Cube Map",Cube)=""{}  //定義立方體貼圖紋理屬性

       Float:_FloatValue("FloatValue",float)=100 //定義一個(gè)浮點(diǎn)數(shù)屬性

       Vector:_VectorValue("VectorValue",vector)=(1,1,1,1) //定義一個(gè)四元素的容器屬性

預(yù)覽結(jié)束,完整教程請(qǐng) 購買下載
資源參數(shù)
    教程名稱:Unity3D 初識(shí)Shader (一) 語       言:中文 頁數(shù)/時(shí)長(zhǎng): 4頁
    軟件版本: unity 上傳時(shí)間:2018/02/27 價(jià)格:¥0
    文件格式: docx 文件大?。?5kb
下載

使用說明:

1. 本站所有資源(包括3D模型、CG教程、插件軟件、材質(zhì)貼圖、工程文件等)由設(shè)計(jì)師上傳,僅供學(xué)習(xí)、參考,請(qǐng)勿用于非法用途。

2. 本站付費(fèi)類資源第一次需有償下載,重復(fù)下載不再收費(fèi)。

3. 若出現(xiàn)3d模型類資源打不開,請(qǐng)確認(rèn)您的軟件版本是否過低。

4. 本站歡迎設(shè)計(jì)師注冊(cè)開店,上傳作品進(jìn)行交流、交易。

5. 如在使用過程中,遇到任何問題,請(qǐng)下拉頁面至評(píng)論區(qū)留言,或咨詢QQ:2353487910。

關(guān)鍵詞: Shader

您還未登錄

全部評(píng)論: 0