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