unity原始碼解析Material

2021-07-11 01:54:49 字數 3064 閱讀 7061

material這個需要結合shader來講,計算機圖形學裡本身就沒有material這個東西,引擎加入這個其實是在shader和主程式之間搭建了一座橋梁,可以說material是乙個著色器管理器,所以很多介面都是對shader的控制。

usingsystem;

usingsystem.runtime.compilerservices;

usingunityengine.internal;

namespaceunityengine

//這個是針對該material鎖控制的shader中_color變數操作,獲取該顏色或設定該顏色

publiccolor color

set}

//針對該material鎖控制的shader中_maintex

變數操作,獲取該紋理或設定該紋理

publictexture maintexture

set}

//shader中_maintex的紋理偏移量

publicvector2 maintextureoffset

set}

//_maintex的紋理座標縮放,編輯器上就是對應tiling這個屬性

publicvector2 maintexturescale

set}

//shader中pass的數量

publicextern

int(methodimploptions.internalcall)]

get;

}//設定該材質的渲染佇列,對應了shader中的queue,表示unity在什麼時候渲染自己,可選值:background(1000), geometry(2000), alphatest(2450), transparent(3000), overlay(4000)

publicextern

int(methodimploptions.internalcall)]

set;

}//這相當於是c語言中的巨集定義列表,通過enablekeyword,disablekeyword決定

使用不使用這些巨集來控制shader執行哪部分**

publicextern

(methodimploptions.internalcall)]

set;

}//使用shader裡面字串建立乙個材質

publicmaterial(string contents)

//使用shader建立乙個材質

publicmaterial(shader shader)

//深拷貝乙個材質

publicmaterial(material source)

//設定shader中名為propertyname的變數的值

publicvoid

setcolor(string propertyname, color color)

publicvoid

setcolor(intnameid, color color)

publicvoid

setvector(intnameid, vector4 vector)

//設定shader中名為propertyname的變數的值

publicvector4getvector(string propertyname)

publicvector4getvector(intnameid)

//設定shader中名為propertyname的變數的值

publicvoid

settexture(string propertyname, texture texture)

publicvoid

settexturescale(string propertyname, vector2 scale)

//設定shader中名為propertyname的變數的值為矩陣

publicvoid

setmatrix(string propertyname, matrix4x4 matrix)

publicvoid

setmatrix(intnameid, matrix4x4 matrix)

publicvoid

setint(intnameid,intvalue)

publicintgetint(string propertyname)

publicintgetint(intnameid)

}

Fabric 原始碼解析 原始碼目錄解析

這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...

Unity 遊戲原始碼

2 1 爐石傳說 客戶端加伺服器端 2 2 新仙劍奇俠傳 2 3 unity3d 戰鬥卡牌 變身吧主公 客戶端 伺服器原始碼 2 4 降臨ol u3d全套原始碼 2 5 武士2復仇 2 6 神啟 全套原始碼 資源 2 7 神廟逃亡之魔境仙蹤 2 8 超級馬里奧64 hd版unity原始碼 2 9 暗...

Unity 遊戲原始碼

2 1 爐石傳說 客戶端加伺服器端 2 2 新仙劍奇俠傳 2 3 unity3d 戰鬥卡牌 變身吧主公 客戶端 伺服器原始碼 2 4 降臨ol u3d全套原始碼 2 5 武士2復仇 2 6 神啟 全套原始碼 資源 2 7 神廟逃亡之魔境仙蹤 2 8 超級馬里奧64 hd版unity原始碼 2 9 暗...