個人學習筆記 莊懂的技術美術入門課(美術向)18

2021-10-14 16:04:56 字數 3612 閱讀 5006

小人是ab的,鬼火是ad的

仔細看還會發現有兩層,所以它是兩個pass的shader

之前講過一下subshader有什麼用

乙個shader裡可能有好幾個subshader,這些subshader可能是不同lod級別的回退

乙個遊戲可能比較複雜,要針對很多機型去做適配,乙個shader寫乙個內容經常是不夠的

會根據中低配寫不同shader的內容,subshader可以學lod進行高中低配

subshader往下有個pass,可以寫好幾個pass,渲染完這一遍,再渲另外一遍其他的內容

取樣這個圖,原本uv是0-1,我們要把它縮放成每乙個小格仔的火,然後隔一段時間跳到下乙個格仔

shader首先是屬性

根據行和列我們進行編號

並且uv的重複如果選成repeat,那麼可以繼續往下拓展

properties 

_opacity (

"透明度"

,range(0

,1))

=0.5

_sequence (

"序列幀"

,2d)

="gray"

_rowcount (

"行數"

,int)=

1 _colcount (

"列數"

,int)=

1 _speed (

"速度"

,range

(0.0

,15.0))=1}

第乙個pass,小人的ab

subshader 

pass

blend one oneminussrcalpha // 修改混合方式one/srcalpha oneminussrcalpha

cgprogram

#pragma vertex vert

#pragma fragment frag

#include

"unitycg.cginc"

#pragma multi_compile_fwdbase_fullshadows

#pragma target 3.0

// 輸入引數

uniform sampler2d _maintex;

uniform half _opacity;

// 輸入結構

struct vertexinput

;// 輸出結構

struct vertexoutput

;// 輸入結構》頂點shader>>>輸出結構

vertexoutput vert (vertexinput v)

// 輸出結構》畫素

half4 frag

(vertexoutput i)

: color

endcg

}

第二個pass,給序列幀

floor向下取整,idv相當於商,idu相當於餘數

pass 

blend one one // 混合方式

cgprogram

#pragma vertex vert

#pragma fragment frag

#include

"unitycg.cginc"

#pragma multi_compile_fwdbase_fullshadows

#pragma target 3.0

// 輸入引數

uniform sampler2d _sequence; uniform float4 _sequence_st;

uniform half _opacity;

uniform half _rowcount;

uniform half _colcount;

uniform half _speed;

// 輸入結構

struct vertexinput

;// 輸出結構

struct vertexoutput

;// 輸入結構》頂點shader>>>輸出結構

vertexoutput vert (vertexinput v)

// 輸出結構》畫素

half4 frag

(vertexoutput i)

: color

endcg

}

從ab開始,基本引數沒改,多了個顏色

properties 

[hdr] _color (

"混合顏色"

, color)=(

1.0,

1.0,

1.0,

1.0)

_opacity (

"透明度"

,range(0

,1))

=0.5

}subshader

pass

blend one oneminussrcalpha // 修改混合方式

cgprogram

#pragma vertex vert

#pragma fragment frag

#include

"unitycg.cginc"

#pragma multi_compile_fwdbase_fullshadows

#pragma target 3.0

// 輸入引數

uniform sampler2d _maintex;

uniform half _opacity;

uniform half3 _color;

// 輸入結構

struct vertexinput

;// 輸出結構

struct vertexoutput

;

shader部分

淡入淡出的部分是用了頂點色

// 輸入結構》頂點shader>>>輸出結構

vertexoutput vert (vertexinput v)

// 直角座標轉極座標方法

float2 recttopolar

(float2 uv, float2 centeruv)

// 輸出結構》畫素

half4 frag

(vertexoutput i)

: color

深度學習入門 個人學習筆記(一)

跟其他語言一樣,表示乘法,表示除法,表示加法,表示減法,在python中還有 表示平方。在python3.x中整數除以整數結果是小數。1 2 1 4 5 20 7 5 1.4 python 2.x中為1 3 2 9python中有六種標準資料型別 number 數字 string 字串 list 列...

繼承的本質的個人學習筆記

對繼承的本質的一些理解,看了些文章和部落格,總結成自己的文字加深一下理解,可能表達和理解的不是很透徹,請帶著批判的眼光閱讀 先附上大神們的文章 new建立物件時,遞迴查詢父類,分配記憶體,最先建立的應該是object。物件是在執行時建立的,方法是在編譯時建立,物件欄位和方法的建立和呼叫遵循執行就近原...

NodeJS的一些個人學習筆記

前一段時間對nodejs產生了濃厚的興趣,刻苦研究一段時間之後頗有所得,不過中間工作比較忙,有一陣子放著沒看了,這兩天做畢設 求職面試又要用到,回頭翻翻發現好多東西又忘了。今天趕緊補一補,簡單做個筆記 1.require方法的實質是呼叫load方法,load方法載入 編譯 快取module 2.事件...