Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GCS2012 NADEC: WebGL+GWTでミクさんを裸眼立体視してみた

2,143 views

Published on

GCS2012でLTしたスライドです。いろいろ制限つきですけどURLとかたたいてもらえるとありがたいです。(基本Chromeのみですー)

  • Be the first to comment

  • Be the first to like this

GCS2012 NADEC: WebGL+GWTでミクさんを裸眼立体視してみた

  1. 1. @yacchin1205Satoshi Yazawa/やっちん
  2. 2.  学生時代:ブラウザゲーム開発のアルバイト 起業に参加:次世代DVD的な開発 Blu-rayに敗戦するわリーマンショックだわ ◦ 関係者のみなさまには毎度ご迷惑をおかけしております 現在、流浪の民 ◦ Android本の翻訳のお手伝いなどさせていただいたり ◦ 研究開発的なシステム開発させていただいたり ◦ 高専・専門学校で非常勤講師をさせていただいたり ◦ 最近 @mnagaku さんの下でNIIでしごとちゅう
  3. 3.  裸眼立体視が趣味 ◦ どうやら人間は2次元にいけないらしい→2次元が3次元にこい
  4. 4.  コンテンツがとにかく少ない ◦ 出力形式が異なる / プラットフォームが異なる ◦ 機器によって視差のつけ方を調整したかったり ネタストック ◦ ARgil: C++で簡単なMMDのエンジンを書いてみて遊んだり ◦ GWT(Google Web Toolkit): Javaだけでサーバ、クライアント コードを書くお仕事したり SDK依存度が低い小さなJava MMDエンジン書けば幸せ になれそう ◦ WebGL勉強すればブラウザでお手軽MMD立体視ビューア ◦ OpenGL ES勉強すればEVO 3Dみたいな変態端末でも幸せに
  5. 5.  GWT(Google Web Toolkit) ◦ JavaをJavaScriptにコンパイルしてくれる超技術 ◦ native宣言してアレコレしてあげると直接JavaScriptも書ける 制約 ◦ 入出力系は無理  java.io, java.nioとか無理  バイト配列は扱えるけど、文字コードの解釈は無理 ◦ Reflection系も無理  Object.clone()も無理  Class.newInstance()も無理  バイトコード操作なんて論外 ◦ javax.vecmathもまあ無理
  6. 6.  MMDエンジン ◦ ARgilのコード: PMDEditorなどを参考にさせていただいたり ◦ ひたすらC++コード→Javaコードへの変換をする苦行 ◦ 依存部分の切り離し  I/O, OpenGL部分はインタフェース化してプラットフォームごとに 実装 ◦ チューニング  JavaはGCがつらい。できるだけnewの回数を減らすように工夫 物理エンジン: JBullet ◦ javax.vecmath … Object.clone()とかやってる ◦ Stack … バイトコード処理で高速化している・・・ ◦ newInstanceとかも意外とやってる
  7. 7.  とりあえずブラウザ / Androidでなんか動くように なったのでデモ ◦ モデルデータは初音ミクDIVAっぽいどモデル(ままま様), あ ずにゃん(かこみき様), モーションデータは MotionDataBaseVer0.02(Q氏様)  http://3xma.blog49.fc2.com/  http://kakomiki.blog16.fc2.com/blog-entry-259.html  http://www.nicovideo.jp/watch/sm10001743 MMDデモ(モデル対応はまだまだだけど) ◦ http://gwtmmd.appspot.com/ JBullet on GWTデモ ◦ http://gwtmmd.appspot.com/?bullet=true
  8. 8.  RockVision 3D ◦ 左右のピクセルを交互に EVO 3D ◦ ビューポートを横2分割して左右の絵を描く
  9. 9.  立体視を趣味にする者がいつもぶちあたる壁 やってること ◦ 2枚の左右視点をずらした3DなCanvasからArrayを抜き出 す ◦ 2DなCanvasに左右交互に書き出す ◦ 位置合わせ不要にするためにFullscreen APIを使う RockVision 3Dはもっと評価されてもいいと思ってる ◦ 欠点もいろいろあるけど
  10. 10.  非力なノートでも、まあそこそこの速度で・・・? ◦ 現状でもゲーム用デスクトップPCだと1フレーム描くのに30msくら いでいけたりする ◦ GCの負荷が高いようで、newの回数を減らすとかなり性能向上す るみたい 最初の読み込みが遅い ◦ 頂点データを全部GWTの仕掛け上でシリアライズしている ◦ XHRのArray転送を使えばたぶんマシになる GWTで動くものを作っておくと、そこそこ他のところに移植 できるのでたのしい ◦ 意外と高速?
  11. 11.  半額だし!!! ◦ Windows Vista/7のことしか書いてない: DisplayLinkのドライバを 入れればWinXP, Mac OSでもイケる 作り途中を随時アップしていきます(今のところChromeだけ) ◦ http://gwtmmd.appspot.com/mmd_gwt_rv3d.html  RockVision3D向け描画

×