專案需要實現溶解效果,記錄下基本實現:
實現原理:隨著時間變化計算乙個闕值(如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...