Unity3D筆記 英保通一

2021-09-07 21:38:11 字數 2634 閱讀 5609

1、材質和著色器

緊密的聯絡,其中材質相當於是乙個框架,而著色器就是框架中中的內容。在材質框架中可以選擇不同的shader並調節不同的

屬性material和physic material區別?

physicmaterial 物理材質:物理材質描述,如何處理物體碰撞(摩擦,彈性)。

material 材質(材質類)為了獲得乙個物件使用的材質,可以使用 renderer.material 屬性:

匯入的資源material:normal map (法線貼圖),

新建的material材質:bumped diffuse

小知識

發現貼圖:

ˈpærəlæksrɪˈli:f]浮雕貼圖對映)等技術。拋開那些無聊的概念區分,它們的本體還是bump map,目的也是一致的。

2、**)我們知道,在遊戲中經常會有這樣的情況,就是乙個平面——這個平面在現實中並不是一 個「平」面,例如磚牆的表面帶有石質浮雕等等。這樣的情況如果要求遊戲開發人員將複雜的3d細節都做出來是不現實的,因為即使不計較在建模時候的複雜度, 過多的3d細節也同樣會大量消耗顯示晶元的效能,讓遊戲根本沒有可玩性。

如何利用貼圖實現凹凸效果呢?

可行的方法就是將這個平面用乙個貼圖覆蓋,用貼圖的紋理實現一定的凹凸效果。但是這種方法實現的效果並不是很好,因為如果視角一變化,看起來就會像一張簡單的畫有圖案的平面了。

後來,聰明的遊戲開發者想出了一種方法,就是在貼圖過程中對貼圖進行一定的處理,從而保證了在視角變換以後仍然保證有較為明顯的凹凸效果。

我們可以通過在貼圖上的區域性做一些亮暗的變化來做到一種假的3d效果。

法線貼圖就是記錄了乙個需要進行光影變換的貼圖上的各個點的凹凸情況的貼圖,顯示晶元根據這個貼圖的內容,來實時的生成新的有過光影變化的貼圖,從而實現立體效果。

那麼,究竟是怎樣利用法線貼圖記錄乙個平面或者說是乙個貼圖的凹凸情況呢?我們知 道,物體表面產生明暗變化的直接原因,就是光線照射角度的不同,光線垂直於平面的地方就亮,光線斜射到平面的地方就暗,光線照不到的地方就更暗(應該是黑 色,但是由於環境光照所以不會有陰影是真正的黑色)。

記錄這些法線的載體就被我們稱為法線貼圖。為什麼稱之為貼圖呢?我們知道,一條法線 是乙個三維向量,乙個三維向量由x、y、z等3個分量組成,於是人們想出了乙個聰明的方法,就是以這3個分量當作紅綠藍3個顏色的值儲存,這樣的話就生成 一張新的貼圖了,這就是法線貼圖的來歷。

採用色彩通道儲存法線向量

法線貼圖其實並不是真正的貼圖,所以也不會直接貼到物體的表面,它所起的作用就是記錄每個點上的法線的方向。所以這個貼圖如果看起來也會比較詭異,經常呈現一種偏藍紫色的樣子。

法線貼圖的生成過程

doom3中的一張紋理貼圖和這張貼圖對應的法線貼圖

『小提示-05:事實上,真正的法線貼圖並不是記錄貼圖上每個點的法線的絕對角度,而是記錄的是相對於平面的乙個差值。這樣的話,隨著平面的3d變換都能夠實現即時的法線運算了。』

2、bumped specular

比bumped diffuse 多了specular color(高光)和shininess

private var

onetexture:texture2d;

private

var alltexture:object;//

function

ongui()

}if(gui.button(rect(10,140,120,60),"loadonetexture"))

}//drawtexture (position : rect, image : texture, scalemode : scalemode = scalemode.stretchtofill, alphablend : bool = true, imageaspect : float = 0) : void

if(onetexture!=null

)

if(alltexture!=null

) }}

unity的shader分為三種:

(1)fixed function shader 屬於固定渲染管線 shader, 基本用於高階shader在老顯示卡無法顯示時的fallback(之後有詳

細介紹)。使用的是shaderlab語言,語法與微軟的fx files 或者nvidia的 cgfx類似。

(2)vertex and fragment shader 最強大的shader型別,屬於可程式設計渲染管線. 使用的是cg/hlsl語法。

(3)su***ce shader unity3d推崇的shader型別,使用unity預製的光照模型來進行光照運算。使用的也是cg/hlsl語法。

unity 3d學習筆記

1.日誌輸出 如果需要觀測webplayer執行時輸出的log,則可以在初始化start中加上下面這樣一段 但是此日誌檔案太大,過於冗餘 playersettings.useplayerlog true 2.場景切換 3.資源載入 所有通過resources類載入的資源必須放在名為resources...

筆記 Unity3d初學

今天學了一點物體元件 沒搞懂的 1.capsule mesh filter 選擇需要渲染的模型的樣子 這個功能不清楚是幹嘛的 如果選擇乙個sphere 然後mesh裡選擇capsule,那麼模型是sphere,但是game視窗裡顯示出來的是capsule,這個意義在 如果需要capsule,為什麼不...

Unity3D開發(九) Unity3d流光效果

遊戲開 壇 hello game 遊戲開發群 201276069 之前曾經注意過material 中紋理的屬性都有 tiling 和offset 但沒有深究過其用途,今天才知道竟然可以利用 offset做uv 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...