cocos2d 3 X Shader 變暗和變灰

2021-09-07 10:58:26 字數 883 閱讀 3844

我們注意到這個遊戲其中常常使用一些button。美術會給兩張圖。一張略微暗點,表示按下的狀態。

可是這種圖一多起來。就比較占用資源。sprite更改顏色無法表現出這種效果。想起來shader能夠。

cocos2d 中有乙個變灰的樣例,這裡就列出shader**:

#ifdef gl_es

precision mediump float;

#endif

varying vec4 v_fragmentcolor;

varying vec2 v_texcoord;

void main(void)

那幾個係數相加會等於1,不同的調整會有不同的效果。

效果圖:

第一張就是變灰的效果圖,可是離第3張的效果還有距離啊。

搞過圖形學的應該會比較easy知道。我也是搜尋了才知道,我們知道白色是1或者255,黑色是0. 當乙個顏色越接近0表示越接近黑色。也就是說,僅僅要把每乙個畫素的顏色乘以乙個比1小的數。就會有變暗的效果了!

#ifdef gl_es

precision mediump float;

#endif

varying vec4 v_fragmentcolor;

varying vec2 v_texcoord;

void main(void)

我這裡設定的是0.75

終於效果圖:

cocos2d 3 X Shader 變暗和變灰

我們注意到這個遊戲當中經常使用一些按鈕,美術會給兩張圖,一張稍微暗點,表示按下的狀態。但是這樣的圖一多起來,就比較占用資源。sprite更改顏色無法表現出這樣的效果。想起來shader可以。cocos2d 中有乙個變灰的例子,這裡就列出shader ifdef gl es precision med...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

cocos2d 3 x 學習雜記

學習cocos中遇到的一些零散問題,紀錄下來。animation的載入問題actorspritecache addspriteframeswithfile actor.plist load frames 1 animation ani animcation create for int i 0 i ...