正多邊形蒙版
(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 產生乙個新的子類建構函式 ...