亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 系統(tǒng) > Android > 正文

OpenGL Shader實(shí)例分析(7)雪花飄落效果

2019-10-21 21:24:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

研究了一個(gè)雪花飄落效果,感覺(jué)挺不錯(cuò)的,分享給大家,效果如下:

OpenGL,Shader,雪花飄落

代碼如下:

Shader "shadertoy/Flakes" { // https://www.shadertoy.com/view/4d2Xzc Properties{ iMouse ("Mouse Pos", Vector) = (100,100,0,0) iChannel0("iChannel0", 2D) = "white" {}  iChannelResolution0 ("iChannelResolution0", Vector) = (100,100,0,0) }  CGINCLUDE  #include "UnityCG.cginc"  #pragma target 3.0  #pragma glsl  #define vec2 float2 #define vec3 float3 #define vec4 float4 #define mat2 float2x2 #define iGlobalTime _Time.y #define mod fmod #define mix lerp #define atan atan2 #define fract frac  #define texture2D tex2D // 屏幕的尺寸 #define iResolution _ScreenParams // 屏幕中的坐標(biāo),以pixel為單位 #define gl_FragCoord ((_iParam.srcPos.xy/_iParam.srcPos.w)*_ScreenParams.xy)   #define PI2 6.28318530718 #define pi 3.14159265358979 #define halfpi (pi * 0.5) #define oneoverpi (1.0 / pi)  fixed4 iMouse; sampler2D iChannel0; fixed4 iChannelResolution0;  struct v2f {   float4 pos : SV_POSITION;   float4 srcPos : TEXCOORD0;  };    // precision highp float; v2f vert(appdata_base v){   v2f o;  o.pos = mul (UNITY_MATRIX_MVP, v.vertex);  o.srcPos = ComputeScreenPos(o.pos);   return o;  }   vec4 main(v2f _iParam);  fixed4 frag(v2f _iParam) : COLOR0 {  return main(_iParam); }    vec4 main(v2f _iParam) { vec2 p = gl_FragCoord.xy/iResolution.xy; vec3 col = vec3(0,0,0); float dd = 150; for( int i=0; i<dd; i++ ) {  float an = 6.2831*float(i)/dd;  vec2 of = vec2( cos(an), sin(an) ) * (1.0+0.6*cos(7.0*an+iGlobalTime)) + vec2( 0.0, iGlobalTime );  col = max( col, texture2D( iChannel0, p + 20*of/iResolution.xy ).xyz );  col = max( col, texture2D( iChannel0, p + 5.0*of/iResolution.xy ).xyz ); } col = pow( col, vec3(1.0,2.0,3.0) ) * pow( 4.0*p.y*(1.0-p.y), 0.2);  return vec4( col, 1.0 ); }  ENDCG   SubShader {  Pass {   CGPROGRAM    #pragma vertex vert   #pragma fragment frag   #pragma fragmentoption ARB_precision_hint_fastest    ENDCG  }  }  FallBack Off }

代碼分析:

1)七邊形雪花的繪制算法

具體代碼如下:

float dd = 150;for( int i=0; i<dd; i++ ){ float an = 6.2831*float(i)/dd; vec2 of = vec2( cos(an), sin(an) ) * (1.0+0.6*cos(7.0*an+iGlobalTime)) + vec2( 0.0, iGlobalTime ); col = max( col, texture2D( iChannel0, p + 20*of/iResolution.xy ).xyz ); col = max( col, texture2D( iChannel0, p + 5.0*of/iResolution.xy ).xyz );}

在理解這段代碼前,先理解怎么畫(huà)一個(gè)圈,代碼如下:

float dd = 30;for( int i=0; i<dd; i++ ){ float an = 6.2831*float(i)/dd; vec2 of = vec2( cos(an), sin(an) ); col = max( col, texture2D( iChannel0, p + 20*of/iResolution.xy ).xyz );}

然后再準(zhǔn)備一張貼圖,圖片中間是一個(gè)白色像素,周?chē)际呛谏?/p>

OpenGL,Shader,雪花飄落

效果如下:

OpenGL,Shader,雪花飄落

這段代碼處于fragment shader中,意味著屏幕上每個(gè)點(diǎn)都會(huì)進(jìn)行上述的算法。具體如下,遍歷貼圖中該點(diǎn)周?chē)狞c(diǎn)(上面的代碼中為距離該點(diǎn)為20單位的圓上的點(diǎn)),把周?chē)c(diǎn)中最亮的作為該點(diǎn)的顏色。 上面的貼圖有點(diǎn)特殊,只有一個(gè)點(diǎn)是白色,其余點(diǎn)都是黑色的。那么只有距離該點(diǎn)正好為20單位的點(diǎn)才會(huì)變成亮色,其余的點(diǎn)都是黑色,如上圖的結(jié)果。一句話(huà)總結(jié)上面算法的效果:貼圖中的每一個(gè)“相對(duì)亮點(diǎn)”的周?chē)紩?huì)產(chǎn)生“相對(duì)亮的特定圖形”,圖形的亮度取決于該點(diǎn)的亮度,越亮越明顯。效果可以參考文末的圖片。

接下來(lái)理解這段代碼:

float dd = 150;for( int i=0; i<dd; i++ ){ float an = 6.2831*float(i)/dd; vec2 of = vec2( cos(an), sin(an) ) * (1.0+0.7*cos(7.0*an)); col = max( col, texture2D( iChannel0, p + 20*of/iResolution.xy ).xyz );// col = max( col, texture2D( iChannel0, p + 5.0*of/iResolution.xy ).xyz );}

輸出結(jié)果如下:

OpenGL,Shader,雪花飄落

a)  1.0+0.7*cos(7.0*an)的圖像如下:

OpenGL,Shader,雪花飄落

b)算法中 of 向量的路徑為:

OpenGL,Shader,雪花飄落

結(jié)果就很清晰了;其實(shí)這里算法和《【OpenGL】Shader實(shí)例分析(二)- Heart》中繪制心形的算法很類(lèi)似。

最后加上時(shí)間就可以實(shí)現(xiàn)動(dòng)畫(huà)了:

vec2 of = vec2( cos(an), sin(an) ) * (1.0+0.6*cos(7.0*an+iGlobalTime)) + vec2( 0.0, iGlobalTime );

第一個(gè)iGlobalTime,用來(lái)控制雪花的旋轉(zhuǎn),第二個(gè)iGlobalTime使雪花下落。

2)后期顏色等處理

這里可以理解為一種postEffect處理,具體是如下的代碼貢獻(xiàn)的效果:

col = pow( col, vec3(1.0,2.0,3.0) ) * pow( 4.0*p.y*(1.0-p.y), 0.2);

a)  pow(col, vec3(1.0, 2.0, 3.0)) 這句話(huà)使得顏色變成暖色調(diào)。col值的范圍為[0,1],對(duì)小數(shù)繼續(xù)pow運(yùn)算,次數(shù)越高,該值越小。比如:0.5的1次方是0.5, 2次方為0.25, 3次方為0.125等;所以這句話(huà)的作用很明顯:red成份不變,green變小一些,blue變的更小。達(dá)到的效果,使得整體顏色會(huì)偏向暖色調(diào)。

b)pow(4.0*p.y*(1.0-p.y), 0.2) 使得屏幕上下兩邊變暗。

最后附上shader中用到的貼圖:

OpenGL,Shader,雪花飄落

經(jīng)過(guò)程序處理后,得到如下:

OpenGL,Shader,雪花飄落

文章完畢,歡迎討論。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产成人精品一区二| 天堂视频免费在线观看| 国产精品国产三级国产普通话三级| 啄木系列成人av电影| 青青青免费在线视频| 亚洲精品国产精品国自产网站| 美国十次av导航亚洲入口| 韩国日本不卡在线| 日本一区中文字幕| 黄色av网站在线看| 国产福利资源在线| 一道精品视频一区二区三区男同| 成人久久久久久久久| 日韩精品一区二| 天天堂资源网在线观看免费视频| 日韩网站中文字幕| 欧美精品三级在线观看| 亚洲成人精品久久久| 国产一区在线视频观看| 亚洲一级黄色av| 成年人视频在线网站| 午夜丝袜av电影| 91av一区二区三区| 无码熟妇人妻av在线电影| 激情综合网五月| 激情中国色综合| 日韩欧美国产另类| 色窝窝无码一区二区三区成人网站| 欧美成人三级电影在线| 中文字幕一区二区人妻视频| 欧美性猛交xxxx乱大交极品| 成人黄色一级视频| 伊人久久亚洲| 欧美日韩免费不卡视频一区二区三区| 十大黄色软件免费看| 美女写真理伦片在线看| 高潮无码精品色欲av午夜福利| 亚洲精品a级片| 成人欧美在线视频| 91国在线观看| 欧美 日本 国产| 国产精品久久久久免费| 黄色www网站| 中文字幕在线永久| 午夜精品一区| 国产精品麻豆一区二区三区| av在线播放网| 日韩专区第一页| 久久精品国亚洲| 蜜桃视频成人m3u8| 久久久久成人网| 美女国产精品久久久| 亚洲免费小视频| 成人国产精品免费观看| 国产黄频在线观看| 一级片a一级片| 亚洲精品中文字幕乱码三区91| 日韩成人av免费| 7777免费精品视频| 日韩成人午夜| 国产精品一区二区久久国产| 一区精品在线| 91网页版在线登录入口| 国产色a在线| 国产精品免费看片| 日韩专区视频| 日韩电影第一页| 亚洲影视一区二区三区| 亚洲影院在线播放| 免费精品国产的网站免费观看| 久久国产加勒比精品无码| 欧美日韩精品二区| 国产人成视频在线观看| 久久人体做爰大胆| 亚洲а∨精品天堂在线| 色欧美自拍视频| 丁香花在线观看完整版电影| 大奶在线精品| 国产精品任我爽爆在线播放| 91精品国产自产在线观看永久| 91偷拍一区二区三区精品| 天堂地址在线www| 在线满18网站观看视频| 亚洲成人激情综合网| 精品亚洲国产成av人片传媒| www日本高清| 日本不卡免费在线视频| 美女视频黄a大片欧美| 国产91沈先生在线播放| 手机在线观看毛片| 日本孕妇大胆孕交无码| 99热精品在线观看| 三年中国中文在线观看免费播放| 国产在线高清精品| 国产香蕉精品| 69av.com| 亚洲激情一区| 欧美日韩亚洲综合一区二区三区激情在线| 一级黄色高清视频| 色婷婷精品大在线视频| 黄色av片三级三级三级免费看| 日韩一区二区免费电影| 天堂在线网站| 国产精品美女久久久久久免费| 国产麻豆一精品一男同| 午夜欧美理论片| 超碰免费在线97| 午夜视频在线看| 亚洲麻豆一区| 不卡av免费在线观看| 天天干天天综合| 国产不卡av在线| 日日橹狠狠爱欧美超碰| 亚洲综合一二区| 日韩伦理在线一区| 无码人妻少妇色欲av一区二区| 欧美一级一区| 在线观看的网站你懂的| 国产免费不卡av| av成人国产| 黄色片在线免费观看| 久久久天堂av| 污网站在线观看视频| 给我免费观看片在线电影的| 国产麻豆精品一区二区| 分分操这里只有精品| 亚洲3atv精品一区二区三区| 蜜臀久久99精品久久久酒店新书| 国产专区中文字幕| 18成人在线视频| 在线观看成人免费视频| 国内精品久久久| 番号在线播放| 成人在线播放网站| 91国语精品自产拍| 香蕉视频在线网址| 亚洲精品免费电影| 污视频免费在线观看| 欧美色蜜桃97| 久久久久久久久久久亚洲| 国产日韩免费| 中文字幕 日本| 久久久久99精品久久久久| 精品国内一区二区三区免费视频| 四虎在线视频免费观看| 国产精品国产三级国产三级人妇| 免费白浆视频| 亚洲欧美综合区自拍另类| 亚洲偷熟乱区亚洲香蕉av| 捆绑变态av一区二区三区| 手机看片国产精品| 久热中文字幕| 欧美性色综合| 狠狠综合久久av一区二区| 日韩久久视频| 777a∨成人精品桃花网| 无码专区aaaaaa免费视频| 99视频在线观看免费| 亚洲欧美另类小说| 在线中文字幕观看| 日韩在线小视频| 天天爽人人爽夜夜爽| 在线观看日韩毛片| 污视频网站免费看| 国产欧美一区二区三区在线观看视频| 欧美一区二区三区爱爱| 综合蜜桃精品| 91免费视频网站在线观看| 亚洲日本久久| 欧美日本亚洲韩国国产| 免费在线观看h| 久久亚洲精精品中文字幕| 91高清免费观看| 日本成人一区| 最新日韩免费视频| 蜜臀av午夜精品久久| 欧美精品videos极品| 538视频在线| 成人ww免费完整版在线观看| 国产午夜精品福利| 欧美一级爱爱视频| 日韩美女啊v在线免费观看| 亚洲三级小视频| 久久婷婷综合色| 色爱综合网欧美| 久久久电影一区二区三区| 色94色欧美sute亚洲线路一久| 亚洲免费伊人电影在线观看av| 欧美不卡一区二区三区四区| 亚洲一区国产| 亚洲系列中文字幕| 国产一级做a爰片久久| 中文乱码字幕高清在线观看| 精精国产xxxx视频在线动漫| 97色在线视频| 国产精品视频九色porn| 免费激情网址| 玖玖爱在线观看| 亚洲精品三区| 欧洲一区二区三区免费视频| 最新国产中文字幕| 国产精品91久久久久久| 国产又黄又粗又爽| 欧美日韩精品久久久免费观看| 午夜精产品一区二区在线观看的| 高清精品一区二区三区一区| 群体交乱之放荡娇妻一区二区| 天堂www中文在线资源| 日韩欧美一区电影| 男女视频一区二区三区| 国产一区二区三区四区五区传媒| av不卡一区二区三区| 国产高清视频免费| 人人九九精品视频| 亚洲精品tv久久久久久久久| 日韩中文在线观看| 国产免费观看久久黄| 黄色日韩网站视频| 日韩精品一区二区三区视频在线观看| 欧美三级在线免费观看| 欧美一级片免费在线观看| 97国产一区二区精品久久呦| 一区二区日韩精品| 黄色网页免费在线观看| 午夜网站在线观看| 日韩成人伦理电影在线观看| 成人三级伦理片| 欧美视频免费在线| 中文字幕视频在线观看| 麻豆精品传媒视频| 精品无人乱码| www.超碰在线观看| 91九色国产在线| 欧美高清视频| 国内精品在线视频| 一区视频在线| 97视频在线免费| 久久国产麻豆精品| 精品福利在线导航| 涩涩在线视频| 一区二区三区免费观看视频| 国产欧美日本一区二区三区| 亚洲国产色一区| 欧美性孕妇孕交| 亚洲精品电影网在线观看| 91精品一久久香蕉国产线看观看| 欧美精品免费看| 国产一区二区三区日韩欧美| 91xx在线观看| 电影eeuss影院www| 不卡视频免费在线观看| 欧美二区乱c少妇| 伊人色综合久久天天人手人婷| mm131午夜| 波多野结衣a v在线| 福利写真视频网站在线| 国产一级黄色录像| 国产精品婷婷| 久久免费精品一区二区| eeuss影影院www在线播放| 伊人久久大香线蕉精品组织观看| 大乳护士喂奶hd| 国产一区国产精品| 亚洲视频久久| 国产亚洲福利| 日韩av电影网址| 成人午夜影视| 九九**精品视频免费播放| 亚洲人成电影在线观看网| 国产精品99导航| 亚洲最大的成人av| 国产精品久久久久久久久久久久午夜片| 二吊插入一穴一区二区| 亚洲精品美女在线观看| 国产又粗又猛又爽又黄的视频四季| 天天色天天射天天干| 任你操这里只有精品| 操人真爽免费视频| 国产日韩精品中文字无码| 1024在线看片你懂得| 日韩免费观看网站| 国产suv精品一区二区| 欧美人动性xxxxz0oz| 亚洲激情二区| 美女高潮黄又色高清视频免费| 天堂av一区二区三区| 欧美三日本三级少妇三99| 久久aⅴ国产欧美74aaa| 天堂av一区二区三区在线播放| 伊人久久综合视频| 91中文字幕永久在线| 男人天堂999| 三级外国片在线观看视频| 日韩av大片在线| 亚洲人成网站影音先锋播放| 伊人手机在线| 顶臀精品视频www| 久操免费在线| 欧美a级片视频| 午夜精品久久久久久99热| 亚洲亚洲精品在线观看| 日韩一级黄色大片| 青娱乐国产在线| 在线视频欧美精品| 精品捆绑调教一区二区三区| 秋霞在线观看一区二区三区| 国产亚洲欧美在线视频| 亚洲va电影大全| 日本久久精品电影| 亚洲精品国产日韩| 日本在线视频网址| 欧洲成人午夜免费大片| 欧美精品中文字幕亚洲专区| 欧美日韩久久中文字幕| 77777影视视频在线观看| 五月色婷婷综合| 一卡二卡三卡四卡五卡| 欧美精品久久久久久久小说| 成人午夜视频精品一区| 久久久久亚洲无码| 亚洲精品a区| 男人天堂网av| www.eeuss影院| 欧美限制电影| 欧美精品在线第一页| 少妇一级淫片日本| 成人精品一区二区三区| 欧美日韩国产精品一区二区三区四区|