SlideShare a Scribd company logo
Web GLの話
                2012/08/26 Sapporo.js
                    @havanaclub_




2012年8月26日日曜日
WebGLってなんすか
              (いきなり)


2012年8月26日日曜日
WebGLってなんすか
                Open GL ES 2.0 のJavaScript
                porting

                canvas要素にOpenGLのプレーンを作
                れる

                 GPUに直接命令を投げれる(ドライ
                 バ経由で)


2012年8月26日日曜日
対応ブラウザ
                PC
                 新しげな Firefox, Chrome,
                 Safari,Opera
                 IEは対応する気がない(アドオン…)
                Handheld
                 Firefox, Opera, ソニエリ
                 UIWebViewは
                 setWebGLEnabled:YESがいるよ
2012年8月26日日曜日
OpenGL ES 2.0 ってな
                         んぞ
                OpenGL 2.0のサブセット

                最近のスマホの標準

                ProgrammableShaderモデル, 実数精
                度プリフィクス, 冗長なAPIの削除etc

                 ちなみにこの前のSIGGRAPHで
                 ES3.0が公開されたよ

2012年8月26日日曜日
何がうれしいの

                zero-deploy

                cross platform

                cross device

                で3Dインタラクションプログラムが
                動く(やったー)

2012年8月26日日曜日
デモるよ
                                   Google zygote body
                                   http://zygotebody.com/

                                  MMD on WebGL

ft っぽいの                               http://edv.sakura.ne.jp/mmd/
 doob.github.com/three.js/examples/webgl_geometry_minecraft_ao.html




 2012年8月26日日曜日
Programmable shader
                OpenGL ES 2.0では全部の描画を
                Programmable Shaderを使わないと
                いけない =>どゆこと?
                 頂点を投げてphong shadingで塗れ
                 とかいうようなAPIが一切なくなった
                 パイプラインにデータとシェーダプ
                 ログラムを投げて描画させる
                  =>自由度の代わりに煩雑
2012年8月26日日曜日
Shader pipeline
                                           テクスチャ
                                            array




                                           Fragment   出力ビットマッ
                 頂点データ   Vertex   頂点データ'
                         shader             shader     プバッファ




                         GLSL               GLSL




2012年8月26日日曜日
プログラムの流れ
                1. 初期化(キャンバスとか座標関係とか
                   作る)
                2. 頂点データ&頂点用GLSLをセット
                3. Vertex shader(頂点シェーダ)で頂
                   点をごにょる
                4. テクスチャとFragment Shader用
                   GLSLをセット
                5. Fragment shader(DirectXでいうピ
                   クセルシェーダ)で画素ごとにどうい
                   う色にするか決める
2012年8月26日日曜日
GLSL
                シェーダプログラミング専用言語
                Cっぽい。型付き
                複数の頂点・ピクセルに同じプログ
                ラムが適用される一種のストリーム処
                理
                WebGLだと実行時コンパイル後GPU
                に流される

2012年8月26日日曜日
セキュリティ
                ローカルファイルや異なるドメインの
                画像はテクスチャとして読めないので
                ローカル開発するときもWebサーバ立
                てること

                異ドメインについてはCORSヘッダつ
                ければ大丈夫だそう(未調査)


2012年8月26日日曜日
実際どんなかんじな
                 の(コード解説)
                  Learning WebGL のサンプルを少し整理した奴
                  http://learningwebgl.com/blog/?page_id=1217




2012年8月26日日曜日
補足:座標の話




                http://www.belanecbn.sk/opengl_tutorialy/obrazky/
                        opengl_perspective_projection.jpg
2012年8月26日日曜日
ぶっちゃけ
                 めんどい


2012年8月26日日曜日
ライブラリとか使お
                    う


2012年8月26日日曜日
各種ライブラリ

                 three.js
                http://mrdoob.github.com/three.js/   おすすめ
                PhiloGL
                http://www.senchalabs.org/philogl/

                GLGE
                http://www.glge.org/

                SceneJS
                http://scenejs.org/



2012年8月26日日曜日
やってくれること
                • 球とかの単純なオブジェクトの生成
                • モデルデータ(+テクスチャ)・カメ
                 ラの管理(シーングラフ管理)

                • ボーンとかIKあたりのアニメーション
                 支援

                • LOD、Fogなどなど
2012年8月26日日曜日
デモ



2012年8月26日日曜日
パフォーマンス

                • JavaScriptよりGPUのほうが10倍くら
                 い早いのでなるべくGPUにやらせるこ
                 と

                 • パーティクル生成とかポストプロセス
                  とか



2012年8月26日日曜日
で、使い道は?
                とりあえずゲーム方面?
                Quake 2は移植できたし
                Minecraftくらいなら余裕そう
                GISとか3Dチャートとかよろしいので
                は
                3Dチャートライブラリ作りたい(Rに
                はなんかあるのを見せてもらった)
2012年8月26日日曜日
本とか



2012年8月26日日曜日
WebGL: Up and Running
          Building 3D Graphics for the Web


                        今月出たばっかの本

                       three.jsベースでゲームと
                       か作る

                        とても良いです



2012年8月26日日曜日
Professional WebGL Programming:
             Developing 3D Graphics for the
                          Web

                           今年7月の本

                           絵を出してテクス
                           チャ貼るところまで
                           (初心者向け?)

                           持ってない



2012年8月26日日曜日
OpenGL Insights
                      今月出たばっかの本

                      OpenGLの最近のトピック
                      や使いこなしテクが色々!

                      WebGLの話もいくつか
                      (結構値段するけど)



2012年8月26日日曜日
Programming OpenGL
                ES 2.0
                 Super Bibleとかは結構
                 レガシー記述が多い

                 Programmable shader
                 なOpenGLはこれから入
                 ると良い

                 日本語版もあるよ


2012年8月26日日曜日
OpenGL 4.0 Shading
                Language cookbook
                         GLSLはこれいいよ

                         GLSLのバージョンが
                         違うのでそのへんは
                         がんばる

                         あとnVidiaのサイト
                         とかWebに色々サン
                         プルのってる
2012年8月26日日曜日

More Related Content

PDF
スマホにおけるWebGL入門
Yohta Kanke
 
PPTX
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
Yusuke HIDESHIMA
 
PDF
IbisPaintのOpenGLES2.0
Eiji Kamiya
 
PDF
WebGL and Three.js
yomotsu
 
PDF
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
Yukio Andoh
 
PDF
簡単!OpenGL ES 2.0フラグメントシェーダー
Eiji Kamiya
 
PDF
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
 
PDF
JavaScriptでCGを扱う WebGL紹介
Isao Ebisujima
 
スマホにおけるWebGL入門
Yohta Kanke
 
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
Yusuke HIDESHIMA
 
IbisPaintのOpenGLES2.0
Eiji Kamiya
 
WebGL and Three.js
yomotsu
 
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
Yukio Andoh
 
簡単!OpenGL ES 2.0フラグメントシェーダー
Eiji Kamiya
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
 
JavaScriptでCGを扱う WebGL紹介
Isao Ebisujima
 

Similar to Web GLの話 (20)

PDF
GLSLによるシェーダーアートことはじめ
Yoichi Hirata
 
PDF
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
 
PDF
three.js はじめましょ
Hiroaki Okubo
 
PDF
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
FiltersでGLSLを楽しく学んじゃおう!
Kazuya Hiruma
 
PDF
シリコンスタジオの最新テクノロジーデモ技術解説
Silicon Studio Corporation
 
PDF
Three.jsで3D気分
Toshio Ehara
 
PPTX
チョコ溶かす奴
翔 石井
 
PDF
WebGLことはじめ
Kazuya Hiruma
 
PDF
Basic knowledge of 3d
Masayuki KaToH
 
PDF
「さくらのINFRA WARS」で 利用されている技術
townewgokgok
 
PDF
coma Creators session vol.2
Atsushi Tadokoro
 
KEY
初心者向けAndroidゲーム開発ノウハウ
Kentarou Mukunasi
 
PDF
関西Qt勉強会 ごーるでん 発表資料
Yuya Adachi
 
PPTX
CG2013 11
shiozawa_h
 
PPTX
Delphi で超高速 OpenGL 2D/3D 描画
LUXOPHIA institute
 
KEY
GTC2011 Japan
Takuro Iizuka
 
KEY
シェーダーしよっ☆ Let's play shaders!
Yuichi Higuchi
 
PDF
3 dプリンタの使い方
mgwsuzuki
 
PDF
Flashup13 Basic Training of Flare3D
Katsushi Suzuki
 
GLSLによるシェーダーアートことはじめ
Yoichi Hirata
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
 
three.js はじめましょ
Hiroaki Okubo
 
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
 
FiltersでGLSLを楽しく学んじゃおう!
Kazuya Hiruma
 
シリコンスタジオの最新テクノロジーデモ技術解説
Silicon Studio Corporation
 
Three.jsで3D気分
Toshio Ehara
 
チョコ溶かす奴
翔 石井
 
WebGLことはじめ
Kazuya Hiruma
 
Basic knowledge of 3d
Masayuki KaToH
 
「さくらのINFRA WARS」で 利用されている技術
townewgokgok
 
coma Creators session vol.2
Atsushi Tadokoro
 
初心者向けAndroidゲーム開発ノウハウ
Kentarou Mukunasi
 
関西Qt勉強会 ごーるでん 発表資料
Yuya Adachi
 
CG2013 11
shiozawa_h
 
Delphi で超高速 OpenGL 2D/3D 描画
LUXOPHIA institute
 
GTC2011 Japan
Takuro Iizuka
 
シェーダーしよっ☆ Let's play shaders!
Yuichi Higuchi
 
3 dプリンタの使い方
mgwsuzuki
 
Flashup13 Basic Training of Flare3D
Katsushi Suzuki
 
Ad

Web GLの話

  • 1. Web GLの話 2012/08/26 Sapporo.js @havanaclub_ 2012年8月26日日曜日
  • 2. WebGLってなんすか (いきなり) 2012年8月26日日曜日
  • 3. WebGLってなんすか Open GL ES 2.0 のJavaScript porting canvas要素にOpenGLのプレーンを作 れる GPUに直接命令を投げれる(ドライ バ経由で) 2012年8月26日日曜日
  • 4. 対応ブラウザ PC 新しげな Firefox, Chrome, Safari,Opera IEは対応する気がない(アドオン…) Handheld Firefox, Opera, ソニエリ UIWebViewは setWebGLEnabled:YESがいるよ 2012年8月26日日曜日
  • 5. OpenGL ES 2.0 ってな んぞ OpenGL 2.0のサブセット 最近のスマホの標準 ProgrammableShaderモデル, 実数精 度プリフィクス, 冗長なAPIの削除etc ちなみにこの前のSIGGRAPHで ES3.0が公開されたよ 2012年8月26日日曜日
  • 6. 何がうれしいの zero-deploy cross platform cross device で3Dインタラクションプログラムが 動く(やったー) 2012年8月26日日曜日
  • 7. デモるよ Google zygote body http://zygotebody.com/ MMD on WebGL ft っぽいの  http://edv.sakura.ne.jp/mmd/ doob.github.com/three.js/examples/webgl_geometry_minecraft_ao.html 2012年8月26日日曜日
  • 8. Programmable shader OpenGL ES 2.0では全部の描画を Programmable Shaderを使わないと いけない =>どゆこと? 頂点を投げてphong shadingで塗れ とかいうようなAPIが一切なくなった パイプラインにデータとシェーダプ ログラムを投げて描画させる  =>自由度の代わりに煩雑 2012年8月26日日曜日
  • 9. Shader pipeline テクスチャ array Fragment 出力ビットマッ 頂点データ Vertex 頂点データ' shader shader プバッファ GLSL GLSL 2012年8月26日日曜日
  • 10. プログラムの流れ 1. 初期化(キャンバスとか座標関係とか 作る) 2. 頂点データ&頂点用GLSLをセット 3. Vertex shader(頂点シェーダ)で頂 点をごにょる 4. テクスチャとFragment Shader用 GLSLをセット 5. Fragment shader(DirectXでいうピ クセルシェーダ)で画素ごとにどうい う色にするか決める 2012年8月26日日曜日
  • 11. GLSL シェーダプログラミング専用言語 Cっぽい。型付き 複数の頂点・ピクセルに同じプログ ラムが適用される一種のストリーム処 理 WebGLだと実行時コンパイル後GPU に流される 2012年8月26日日曜日
  • 12. セキュリティ ローカルファイルや異なるドメインの 画像はテクスチャとして読めないので ローカル開発するときもWebサーバ立 てること 異ドメインについてはCORSヘッダつ ければ大丈夫だそう(未調査) 2012年8月26日日曜日
  • 13. 実際どんなかんじな の(コード解説) Learning WebGL のサンプルを少し整理した奴 http://learningwebgl.com/blog/?page_id=1217 2012年8月26日日曜日
  • 14. 補足:座標の話 http://www.belanecbn.sk/opengl_tutorialy/obrazky/ opengl_perspective_projection.jpg 2012年8月26日日曜日
  • 15. ぶっちゃけ めんどい 2012年8月26日日曜日
  • 16. ライブラリとか使お う 2012年8月26日日曜日
  • 17. 各種ライブラリ three.js http://mrdoob.github.com/three.js/ おすすめ PhiloGL http://www.senchalabs.org/philogl/ GLGE http://www.glge.org/ SceneJS http://scenejs.org/ 2012年8月26日日曜日
  • 18. やってくれること • 球とかの単純なオブジェクトの生成 • モデルデータ(+テクスチャ)・カメ ラの管理(シーングラフ管理) • ボーンとかIKあたりのアニメーション 支援 • LOD、Fogなどなど 2012年8月26日日曜日
  • 20. パフォーマンス • JavaScriptよりGPUのほうが10倍くら い早いのでなるべくGPUにやらせるこ と • パーティクル生成とかポストプロセス とか 2012年8月26日日曜日
  • 21. で、使い道は? とりあえずゲーム方面? Quake 2は移植できたし Minecraftくらいなら余裕そう GISとか3Dチャートとかよろしいので は 3Dチャートライブラリ作りたい(Rに はなんかあるのを見せてもらった) 2012年8月26日日曜日
  • 23. WebGL: Up and Running Building 3D Graphics for the Web 今月出たばっかの本 three.jsベースでゲームと か作る とても良いです 2012年8月26日日曜日
  • 24. Professional WebGL Programming: Developing 3D Graphics for the Web 今年7月の本 絵を出してテクス チャ貼るところまで (初心者向け?) 持ってない 2012年8月26日日曜日
  • 25. OpenGL Insights 今月出たばっかの本 OpenGLの最近のトピック や使いこなしテクが色々! WebGLの話もいくつか (結構値段するけど) 2012年8月26日日曜日
  • 26. Programming OpenGL ES 2.0 Super Bibleとかは結構 レガシー記述が多い Programmable shader なOpenGLはこれから入 ると良い 日本語版もあるよ 2012年8月26日日曜日
  • 27. OpenGL 4.0 Shading Language cookbook GLSLはこれいいよ GLSLのバージョンが 違うのでそのへんは がんばる あとnVidiaのサイト とかWebに色々サン プルのってる 2012年8月26日日曜日