Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yuichi Higuchi
KEY, PDF
2,584 views
Cocos2d Shaders
How to use original shaders on cocos2d.
Technology
◦
Read more
7
Save
Share
Embed
Embed presentation
Download
Downloaded 20 times
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PDF
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
by
nyagasuki
KEY
シェーダーしよっ☆ Let's play shaders!
by
Yuichi Higuchi
PDF
簡単!OpenGL ES 2.0フラグメントシェーダー
by
Eiji Kamiya
PDF
GLSLによるシェーダーアートことはじめ
by
Yoichi Hirata
KEY
Core Graphicsでつくる自作UIコンポーネント入門
by
cocopon
KEY
Sencha study
by
Shinsuke Sugita
PDF
FiltersでGLSLを楽しく学んじゃおう!
by
Kazuya Hiruma
PPT
Dsl&Builder
by
Uehara Junji
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
by
nyagasuki
シェーダーしよっ☆ Let's play shaders!
by
Yuichi Higuchi
簡単!OpenGL ES 2.0フラグメントシェーダー
by
Eiji Kamiya
GLSLによるシェーダーアートことはじめ
by
Yoichi Hirata
Core Graphicsでつくる自作UIコンポーネント入門
by
cocopon
Sencha study
by
Shinsuke Sugita
FiltersでGLSLを楽しく学んじゃおう!
by
Kazuya Hiruma
Dsl&Builder
by
Uehara Junji
What's hot
PDF
怪しいWindowsプログラミング
by
nagoya313
PPT
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
PDF
WebGL and Three.js
by
yomotsu
PDF
初めてのグラフカット
by
Tsubasa Hirakawa
PDF
Cocos2dshader devcon jp_20120621_en
by
Ricardo Quesada
KEY
Inside frogc in Dart
by
Goro Fuji
PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
by
Atsushi Tadokoro
KEY
iOSプログラマへ。HTML5 Canvasがおもしろい!
by
cocopon
PDF
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
by
schoowebcampus
PDF
Lotus DEvCon 2000 - LotusScript Tips and Techniques
by
Hiroaki Komine
PPT
ADVENTURE_Solid Ver.1.2の概要
by
ADVENTURE Project
PPTX
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
by
Kiyoshi Sawada
PDF
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
by
Masahiro Wakame
PDF
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
by
Ryo Sakamoto
PDF
3次元図形をSchemeで造ろう!
by
vi-iv
KEY
Cocoa勉強会201208
by
Satoshi Oomori
PDF
新しい並列for構文のご提案
by
yohhoy
PDF
きつねさんでもわかるLlvm読書会 第2回
by
Tomoya Kawanishi
PDF
Three.jsで3D気分
by
Toshio Ehara
PDF
規格書で読むC++11のスレッド
by
Kohsuke Yuasa
怪しいWindowsプログラミング
by
nagoya313
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
WebGL and Three.js
by
yomotsu
初めてのグラフカット
by
Tsubasa Hirakawa
Cocos2dshader devcon jp_20120621_en
by
Ricardo Quesada
Inside frogc in Dart
by
Goro Fuji
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
by
Atsushi Tadokoro
iOSプログラマへ。HTML5 Canvasがおもしろい!
by
cocopon
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
by
schoowebcampus
Lotus DEvCon 2000 - LotusScript Tips and Techniques
by
Hiroaki Komine
ADVENTURE_Solid Ver.1.2の概要
by
ADVENTURE Project
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
by
Kiyoshi Sawada
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
by
Masahiro Wakame
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
by
Ryo Sakamoto
3次元図形をSchemeで造ろう!
by
vi-iv
Cocoa勉強会201208
by
Satoshi Oomori
新しい並列for構文のご提案
by
yohhoy
きつねさんでもわかるLlvm読書会 第2回
by
Tomoya Kawanishi
Three.jsで3D気分
by
Toshio Ehara
規格書で読むC++11のスレッド
by
Kohsuke Yuasa
Similar to Cocos2d Shaders
PPTX
知覚動考、とりあえずShaderを書いてみる
by
onotchi_
PPTX
OpenGLプログラミング
by
幸雄 村上
PPTX
1日で始めるglsl
by
AimingStudy
PDF
coma Creators session vol.2
by
Atsushi Tadokoro
PDF
IbisPaintのOpenGLES2.0
by
Eiji Kamiya
PPTX
Shadow gunのサンプルから学べるモバイル最適化
by
Katsutoshi Makino
PPTX
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
by
Fujio Kojima
PDF
Real timeimageprocessing
by
ushiostarfish _
PPTX
Unityのポストエフェクトで遊ぶ!
by
Yamato Honda
PDF
Gcm#3 アーティストのためのプログラマブルシェーダ講座
by
GREE/Art
PDF
Android OpenGL HandsOn
by
Ikuo Tansho
PDF
FFRK cocos2d xレイヤーの最適化
by
dena_study
PDF
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
by
UnityTechnologiesJapan002
PDF
㉒初期プロジェクトを改造!
by
Nishida Kansuke
PDF
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
by
com044
PDF
そうだRTシェーダをはじめよう
by
fumoto kazuhiro
PPTX
RenderTextureの正しいα値は?
by
KLab Inc. / Tech
PPTX
シェーダー伝道師 第二回
by
hixi365
PDF
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
by
Hiroshi Yoshida
PDF
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
by
AdvancedTechNight
知覚動考、とりあえずShaderを書いてみる
by
onotchi_
OpenGLプログラミング
by
幸雄 村上
1日で始めるglsl
by
AimingStudy
coma Creators session vol.2
by
Atsushi Tadokoro
IbisPaintのOpenGLES2.0
by
Eiji Kamiya
Shadow gunのサンプルから学べるモバイル最適化
by
Katsutoshi Makino
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
by
Fujio Kojima
Real timeimageprocessing
by
ushiostarfish _
Unityのポストエフェクトで遊ぶ!
by
Yamato Honda
Gcm#3 アーティストのためのプログラマブルシェーダ講座
by
GREE/Art
Android OpenGL HandsOn
by
Ikuo Tansho
FFRK cocos2d xレイヤーの最適化
by
dena_study
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
by
UnityTechnologiesJapan002
㉒初期プロジェクトを改造!
by
Nishida Kansuke
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
by
com044
そうだRTシェーダをはじめよう
by
fumoto kazuhiro
RenderTextureの正しいα値は?
by
KLab Inc. / Tech
シェーダー伝道師 第二回
by
hixi365
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
by
Hiroshi Yoshida
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
by
AdvancedTechNight
Cocos2d Shaders
1.
cocos2dでシェーダーを使おう
cocos2d v2.0-rc1
2.
自己紹介
FREE! • xionchannel • @ajinotataki • Technical Artist ElectroMaster HungryMaster 18万本 5万本
3.
シェーダーとは • GPU用の色をつけるプログラム • VertexShaderとFragmentShaderがある •
OpenGLではGLSL言語を使う • シェーダーに与える引数もある Attribute, Uniform
4.
OpenGL ES 2.0
での流れ glCreateShader() glShaderSource() glCreateProgram() glCompileShader() glAttachShader() glLinkProgram() 破棄してOK あとで使う glUseProgram()
5.
1. VertexShader, FragmentShaderのシェーダーオブ
ジェクトを作成 glCreateShader() 2. シェーダーオブジェクトにプログラムを読み 込む glShaderSource() 3. プログラムをコンパイル glCompileShader()
6.
4. プログラムオブジェクトを作成 glCreateProgram() 5.
プログラムオブジェクトにシェーダーを登録 glAttachShader() ※ここでシェーダーオブジェクトは破棄して良い 6. シェーダープログラムをリンク glLinkProgram() ※ここまで事前処理で良い 7. シェーダープログラムを適用 glUseProgram()
7.
cocos2dではどういう 流れになっているか
8.
cocos2d 2.0 での流れ self.shaderProgram
= [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColor]; glCreateShader() glShaderSource() glCreateProgram() glCompileShader() glAttachShader() glLinkProgram() 破棄 初期化メソッド CC_NODE_DRAW_SETUP(); glUseProgram() drawメソッド
9.
初期化メソッドの流れ self.shaderProgram = [[CCShaderCache
sharedShaderCache] programForKey:kCCShader_PositionTextureColor]; [CCShaderCache sharedShaderCache] [[CCShaderCache alloc] init]; [self loadDefaultShaders]; [[CCGLProgram alloc] initWithVertexShaderByteArray:fragmentShaderByteArray:]; glCreateShader() glCreateProgram() glShaderSource() glAttachShader() glCompileShader() Attribute, Uniformの準備 glLinkProgram() 破棄
10.
初期化メソッドの流れ 1. [CCShaderCache sharedShaderCache]が呼ばれる 2.
その中で[[CCShaderCache alloc] init];が呼ばれる 3. その中で[self loadDefaultShaders];が呼ばれる 4. その中で[[CCGLProgram alloc] initWithVertexShaderByteArray: fragmentShaderByteArray: ];が呼ばれシェーダーが コンパイルされ、配列に保持
11.
5. さらにシェーダーのAttribute, Uniform指定用の
識別子を準備 (updateUniformsメソッド) 6. シェーダーをリンクし、4で生成されたプログ ラムは破棄 7. 4で保持されたシェーダーをCCNodeで使用する ために識別子がCCNode側のself.shaderProgram を渡す
12.
drawメソッドの流れ CC_NODE_DRAW_SETUP();
glUseProgram() glUniform*() 動的Uniformを更新 glBindTexture2d() 使用するテクスチャを指定 glVertexAttribPointer() Attributeメモリ座標を指定 glDrawArrays() ポリゴン描画
13.
drawメソッドの流れ 1. CC_NODE_DRAW_SETUP()マクロ内で glUseProgram()を実行、シェーダーが使用可能に
なる 2. 動的Uniformパラメータを更新 3. 使用テクスチャをBind 4. Attributeパラメータのメモリ座標をセット 5. ポリゴンを描画
14.
Attribute, Uniform • AttributeはVertexShader用パラメータ
★ 頂点数分のデータが必要 (頂点座標、法線、頂点カラーなど) • Uniformは双方へのパラメータ ★ ピクセル分のデータではない ★ 全ピクセルに対して同じデータ (テクスチャ、演算用の値など)
15.
cocos2dでオリジナル シェーダーを使うには?
16.
初期化メソッドを変更 self.shaderProgram = [[CCShaderCache
sharedShaderCache] programForKey:kCCShader_PositionTextureColor]; [CCShaderCache sharedShaderCache] これを自前にして自前の [[CCShaderCache alloc] init]; シェーダーを登録する [self loadDefaultShaders]; [[CCGLProgram alloc] initWithVertexShaderByteArray:fragmentShaderByteArray:]; glCreateShader() glCreateProgram() glShaderSource() glAttachShader() glCompileShader() Attribute, Uniformの準備 glLinkProgram() 破棄
17.
drawメソッドの変更 CC_NODE_DRAW_SETUP();
glUseProgram() glUniform*() 動的Uniformを更新 glUniform*() 自前の動的Uniformを更新を追加 この辺に自 前パラメー glBindTexture2d() 使用するテクスチャを指定、自前のも追加 タを追加 glVertexAttribPointer() Attributeメモリ座標を指定、自前のも追加 glDrawArrays() ポリゴン描画
18.
というわけで 実際にやってみた
19.
法線マップを使用した 平行光源ライティングの例
20.
法線マップを使用した 点光源ライティングの例
21.
GLSLの参考資料 •
床井研究室 http://marina.sys.wakayama-u.ac.jp/~tokoi/? date=20051006 • 今回のソース http://xionchannel.no-ip.org/ cocos2d_shaderTest.zip • 今回のスライド http://xionchannel.no-ip.org/ cocos2dShader20120621.pdf
Editor's Notes
#2
\n
#3
\n
#4
\n
#5
\n
#6
\n
#7
\n
#8
\n
#9
\n
#10
\n
#11
\n
#12
\n
#13
\n
#14
\n
#15
\n
#16
\n
#17
\n
#18
\n
#19
\n
#20
\n
#21
\n
#22
\n
Download