JUI 2009 O3D Programming

24
O3D Programming gyuque, Satoshi Ueyama 2009712日日曜日

Transcript of JUI 2009 O3D Programming

Page 1: JUI 2009 O3D Programming

O3D Programminggyuque, Satoshi Ueyama

2009年7月12日日曜日

Page 2: JUI 2009 O3D Programming

What’s O3D

Google の Web向け3DグラフィックAPI

2009年7月12日日曜日

Page 3: JUI 2009 O3D Programming

object要素

What’s O3D

プラグイン

IE

ActiveXFirefox, Safari…

NPAPI

Javascript

Flash Player

QuickTime plugin

と同じ扱い

とか

なので、Canvas とは別物です

• Flash や QT はクローズドなので、プラグインが唯一の提供手段• O3D はオープンソースなので、ブラウザに組み込まれることもあり得る

ただし

(Google Gearsのように)

2009年7月12日日曜日

Page 4: JUI 2009 O3D Programming

ソフトレンダラ ハードウェアレンダラ

What’s O3D

OpenGL Direct3D IM

今は亡き

Direct3D RM

今は亡き

VRML

新たな挑戦者

O3D

低レベルAPI

シーングラフAPI

座標変換エンジン

2Dポリゴンエンジン

JS !

2D Canvas !" HW実装

2009年7月12日日曜日

Page 5: JUI 2009 O3D Programming

What’s O3D

O3D

シーングラフAPI

!"#$%&"#%$&"&"!!'!!"#(%&"#$$&"&"!!)!!"&&&&"&&&&*&"!!+!!"&&&&"&&&&"&*!!,!

座標変換

ポリゴンに分解D3D、GL等の呼び出し

全部勝手にやってくれる

出力

3Dシーン

2009年7月12日日曜日

Page 6: JUI 2009 O3D Programming

What’s Scene Graph

scene {object {

material(red) {faces {

[0,0, 1,0 0,1]}

}material(blue) {

faces {[0,2, 3,0 0,4]

}}

}}

2. なんか出る

1. シーングラフを評価する

(イメージ)

!この「シーン記述言語」は実在せず、実際は API でシーングラフにノードを足していく(DOMと同じ)

(もちろんシーン記述言語を作ることはできるし、json から読み込む機能もある)

2009年7月12日日曜日

Page 7: JUI 2009 O3D Programming

Reading Sample Code

!"#$%&'(')

**+,-#&./

**0#11'2132'#-"24"5$2+60/

**789#2#:""2;<

json形式のソーン記述テクスチャ画像 等

2009年7月12日日曜日

Page 8: JUI 2009 O3D Programming

超 簡 単!だじぇ!

2009年7月12日日曜日

Page 9: JUI 2009 O3D Programming

……といった情報はぐぐれば山ほど出てきそうなので、もうちょっと細かい話をします

2009年7月12日日曜日

Page 10: JUI 2009 O3D Programming

Working with Scene Graph

Material

ParentChild

position list: [0,0, 0,1, 1,1]index list: [0,1,2]

Transform

Transform

Transform

Shape

DrawListParent

Child

座標変換の流れ

描画の流れPrimitive

2009年7月12日日曜日

Page 11: JUI 2009 O3D Programming

Working with Scene Graph

例)!t = pack.createObject('Transform');t.parent = o3dClient.root;

parent.appendChild( child );

child.parent = parent;

DOM

O3D

! add とか append でドキュメントを検索してもわかりません (addShape は例外)

2009年7月12日日曜日

Page 12: JUI 2009 O3D Programming

Demo - js touch on O3D

2009年7月12日日曜日

Page 13: JUI 2009 O3D Programming

2D on O3D

2D グラフィックスは簡単に扱えるの?Mozilla Party でいただいた質問

2009年7月12日日曜日

Page 14: JUI 2009 O3D Programming

2D on O3D

Canvas provides an interface for drawing text and

2D primitives on a 2D surface.

O3D Canvas : テクスチャを2Dキャンバスとして使うAPI

2D グラフィックスは簡単に扱えるの?

2009年7月12日日曜日

Page 15: JUI 2009 O3D Programming

2D on O3D

4つだけ!→

2009年7月12日日曜日

Page 16: JUI 2009 O3D Programming

2009年7月12日日曜日

Page 17: JUI 2009 O3D Programming

2D on O3D

Canvas

忘れましょう

2009年7月12日日曜日

Page 18: JUI 2009 O3D Programming

2D on O3D

Canvas

忘れましょう

=4>

=4>

?@>

@A>

BC*D*B*E*F3?@>*G*=4>

8C*D*8*E*GF3@A>*H*=4>• ポリゴンに分割• 座標系を変換• Shape をシーンに追加

2009年7月12日日曜日

Page 19: JUI 2009 O3D Programming

Demo - O3D BallPool

Canvas版 by Mr. doob

O3D版

2009年7月12日日曜日

Page 20: JUI 2009 O3D Programming

Demo - O3D BallPool

on Internet Explorer

2009年7月12日日曜日

Page 21: JUI 2009 O3D Programming

Demo - O3D BallPool

あまり話題になっていませんが、O3D plugin にはV8 JS Engineが内蔵されており重い処理をV8に投げることが可能です

"V8版 Demo (あまり期待してはいけません)

2009年7月12日日曜日

Page 22: JUI 2009 O3D Programming

まとめ

• ドキュメントもまだまだ• 実装もまだまだ?(2D Canvasを見る限り)• API も変わりそう

地雷!

2009年7月12日日曜日

Page 23: JUI 2009 O3D Programming

まとめ

• ドキュメントもまだまだ• 実装もまだまだ?(2D Canvasを見る限り)• API も変わりそう

地雷!

使いたくなってきましたね!

2009年7月12日日曜日

Page 24: JUI 2009 O3D Programming

Enjoy O3D Programming

Thank You.

2009年7月12日日曜日