Cocos2d x 溶解效果實現

2021-10-01 23:16:58 字數 1604 閱讀 7909

專案需要實現溶解效果,記錄下基本實現:

實現原理:隨著時間變化計算乙個闕值(如sin(time)),當取樣雜訊圖紋理的rgb中的某個值低於此闕值時,目標紋理的當前片段著色器呼叫discard函式,丟棄當前的片段並且終止著色器執行。

精靈顯示的基本邏輯及片段著色器雜訊圖紋理的設定:

頂點著色器:

attribute vec4 a_position;

attribute vec2 a_texcoord;

attribute vec4 a_color;

#ifdef gl_es

varying lowp vec4 v_fragmentcolor;

varying mediump vec2 v_texcoord;

#else

varying vec4 v_fragmentcolor;

varying vec2 v_texcoord;

#endif

void main()

片段著色器:

#ifdef gl_es

precision mediump float;

#endif

varying vec2 v_texcoord;

uniform sampler2d u_texture1;

void main(void)

{ gl_fragcolor=texture2d(cc_texture0,v_texcoord);

vec4 col=texture2d(u_texture1,v_texcoord);

float threshold = abs(sin(cc_time[3] * 0.1));

if(col.g其中cc_time為引擎內建的屬性, u_texture1為傳入的雜訊圖的紋理。

實現效果如下:

雜訊圖資源:

Cocos2dx 流星效果實現

dionysoslai 906391500 qq.com 2014 8 28 對於用來襯托唯美的意境,與其天空中,點點一閃而過的流星,莫不是說最適合了。對於痴情兒女,私定終身就在這一刻良辰美景中了。今天,我等糙人就來 糟蹋 這乙個美好的事物。功能需求 1.實現流星效果。達到的效果與下圖一致 功能分析...

cocos2dx刮獎效果實現

刮獎效果其實挺簡單的,需要用到rendertexture來進行渲染,通過你所要渲染的圖層,把該層的顏色進行設定混合就可以達到效果,具體看 我用的lua實現的。cpp view plain copy local winsize cc.director shareddirector getwinsize...

cocos2dx之粒子效果

有時候我們需要做一些特殊的效果,比如子彈 的效果,當然我們用動畫也可以做出來,但是有時候發現利用粒子的效果去代替它會跟好看,我們先來看下粒子 void particledemolayer initlayer ccparticleflower,繼承的ccparticlesystemquad的,在coc...