實現乙個圓角正多形蒙版

2021-09-12 11:58:20 字數 642 閱讀 4455

正多邊形蒙版

(1)先畫個正多邊形alpha1

(2)在每個內角處畫個相切圓,求uv座標是否每個圓面向多邊形內角的那一方位上anglearea,求uv座標到每個圓的原點的距離curr,求圓半徑r,可得總的 alpha2 += step(r, curr) * anglearea;

(3)蒙版透明度為 alpha1 + alpha2;

**如下:

shader "hidden/polygonmask" 

subshader

;struct v2f

;float4 _color;

float _ratio;

float _length;

float _smooth;

int _vertexnum;

float _angle;

fixed4 frag(v2f input) : sv_target

_color.a = step(mindis, dis) + circle;

return _color;

}endcg}}

}

乙個實現多播的類 CMultiCast

用法 cmulticast cast 225.6.7.8 7000 cast.startup cast.send 向組播傳送資料報cast.onreceive 繫結 函式 cast.listen 為資料接收啟動監聽cast.shutdown ifndef weisunding multicast d...

從頭實現乙個簡易版React(一)

工作中使用react也很長一段時間了,雖然對它的用法,原理有了一定的了解,但是總感覺停留在表面。本著知其然知其所以然的態度,我試著去看了react原始碼,幾天下來,發現並不能看懂,反而更加雲裡霧裡了 既然看不懂,那就看看社群前輩們寫的一些原始碼分析文章以及實現思路吧,又這麼過了幾天,總算是摸清點思路...

實現乙個迷你版的vue

專案位址 其實vue1和vue2最大的區別就是vue2多了乙個虛擬dom,其他的區別都是很小的。所以理解了vue1的原始碼,就相當於理解了vue2,中間差了乙個虛擬dom的diff演算法 先來科普一下mvvm的概念及原理 mini vuex 全域性方法 繼承minivue 產生乙個新的子類建構函式 ...