一日一Shader 幾何階段之增厚 SS 14

2021-10-07 18:33:42 字數 1012 閱讀 1154

之前做了乙個爆散的效果,那是利用已有頂點的偏移來實現。今天做的增厚效果則是將已有的頂點複製出來乙個,然後沿法線方向偏移,形成雙層結構,讓最終繪製出來的影象有一定的厚度。

**:

shader "myshader/ss_14"

_mask("mask", 2d) = ""{}

} subshader

; struct v2f

;float3 twist(float3 p, float3 center, float power)

float s = sin(power*t);

float c = cos(power*t);

float3x3 m = float3x3(

c, -s, 0,

s, c, 0,

0, 0, 1

);return mul(m, p - center);

}#define add_vert(v,_uv) \

o.vertex = unityobjecttoclippos(v);\

o.uv=_uv;\

#define add_tri(p0, p1, p2,uv0,uv1,uv2) \

add_vert(p0,uv0) \

add_vert(p1,uv1) \

add_vert(p2,uv2) \

tristream.restartstrip();

[maxvertexcount(30)]

void geom(******** v2f v[3], inout ********streamtristream)

fixed4 frag(v2f i) : sv_target

endcg

pass}}

本來準備用一張額外的圖來實現不同的厚度,但是沒成功,就做了乙個旋轉效果。

返回目錄:

一日一Shader 水面折射 SG 17

今天回看昨天做的折射的效果,發現我想的太狹隘了,我完全是按球體的光學原理來實現,所以用其他形狀的透鏡時,效果就是錯誤的。想了想,不規則透鏡的折射效果更多的是一種模擬。不過,我還是想嘗試實現波紋水面的折射效果,因為只用考慮乙個面,所以光學模型還是比較容易構建的。將上圖中的光線原理轉換為幾何問題 已知向...

一日一結2012 5 2

今天去圖書館把作業系統概念借到了,期待很久,欣喜萬分。專業知識部分 今天主要學習了一下mfc六大關鍵技術,感覺講得不錯。主要的例子是以基於文件類的程式,感覺學到了東西。以前看孫新老師的書時是有點半知不解,看了這個資料讓我對mfc程式的內部有了更深一層的理解。課外知識部分 看完10000小時code ...

一日一結2012 5 6

今天天氣很熱,感覺已經進入夏天。看了galaxy 3 效能評測,不錯。專業知識部分 今天看了作業系統概念的虛擬記憶體,了解了虛擬記憶體的概念和原理,虛擬記憶體這種記憶體管理技術允許執行程序不必完全在記憶體中。而且,虛擬記憶體將記憶體抽象成乙個巨大的 統一的儲存陣列,進而將使用者看到的邏輯記憶體和物理...