SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
three.js の紹介
2014/06/16
@gam0022
自己紹介
@gam0022
coins11(情報科学類4年)
NPAL(非数値処理アルゴリズム研究室)
Ruby と C# が好き
自己紹介(TwinCal)
TwinCal
TwinCal"ググれば出てくる
Twinsの履修情報から、
Googleカレンダー・iCalの
時間割を作成するWebサー
ビス
自己紹介(大五郎Bot)
大五郎Bot
マルコフ連鎖でフォローユーザの
ツイートを学習して喋るBot
Rubyで実装
Favstar から BAN ←去年5月
自己紹介(大五郎Bot)
3回目の凍結から解除 ←New(今ここ)
永久凍結の危機は回避
自己紹介
BearTail でエンジニア
Dr.Wallet というアプリの開発
を手伝っている
BearTail は優秀なエンジニアを
募集中
さて
宣伝が多くなってしまったので、
そろそろ本題に入ります…
three.js とは
three.js
http://threejs.org/
JavaScript用の3DCGのライブラリ
WebGL をラッパーしているので、GPUを利用できる
WebGLRendererだけでなく、CanvasRenderer

もあるので、WebGL が動作しない環境でも使える!
three.js とは
MIT License (かなり寛容なライセンス)
できること
商用利用
修正
配布
派生作品に別のライセンスを課すことなど
何ができるか
実際に動くものを見たほうが早い
公式ページの example などから、面白そうなものをいくつか
選んできた
http://threejs.org/examples/
http://stemkoski.github.io/Three.js/
demo
http://threejs.org/examples/
#webgl_animation_cloth
布にボールを投げたり風をあてたり
できる
布のシュミレーションは ばねモデ
ルで自力でやってるよう
Geometry(形状) の動的な
update 処理
Fog(霧) 効果
demo
http://threejs.org/
examples/
#webgl_interactive_dragg
ablecubes
Cube をドラッグで移動する
サンプル
マウスとの当たり判定は
three.js の機能でそれなりに
簡単にできる
demo
http://threejs.org/
examples/
#webgl_animation_ski
nning_blending
歩き→走り を滑らかにつ
なげる
モーションブレンド
demo
http://stemkoski.github.io/
Three.js/Reflection.html
鏡のように反射する Material
とても綺麗!
demo
http://
stemkoski.github.io/
Three.js/Many-
Cameras.html
複数のカメラを設定
webカメラの映像を
Material に設定
良い所
実際に使ってみての感想
WebGL (というか3DCG) の難しい部分を完全にライブラリ
任せでできる
ソースコードもとても短く書ける
OpenGL と比較すると、Geometry や Material がオブジェ
クト化していて使いやすいインターフェースになっている
良い所
立方体を表示する最低限のコード。HTMLを含めて35行だけ!
良い所
ブラウザ上で動くのは嬉しい
タブレット端末でも動かせるかも!?
去年、Chrome for Android で
WebGL がサポートされた
canvas でも動作するので iOS でも使
える
悪いところ
OpenGL と比べるとドキュメントが全然少ない
公式ページの docs が唯一のドキュメント
http://threejs.org/docs/
悪いところ
http://threejs.org/
docs/#Reference/
Extras.Core/
CurvePath
全部 todo なclass がある
GitHubでソースコードが
見れるので、困ったら、実
装を見ながら、使い方を調
べるしか無い\(^o^)/
ところで
Q. three.js(3次元) があるなら、two.js(2次元)もあるのか?
➡ A. ある
2次元描画ライブラリ Two.js
svg, canvas, webgl でレンダリングできる
http://jonobr1.github.io/two.js/
まとめ
まとめ
three.js という 3DCG ライブラリがある
GPUが使えて、高速に描画できる
ブラウザ上でもかなり高度な3DCGが使える
ドキュメントはちょっと(かなり?)不足気味
今後の発展に期待!!

Contenu connexe

Tendances

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 

Tendances (20)

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
IIJmio meeting 24 MVNO素朴な疑問解決編
IIJmio meeting 24 MVNO素朴な疑問解決編IIJmio meeting 24 MVNO素朴な疑問解決編
IIJmio meeting 24 MVNO素朴な疑問解決編
 
計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?
 
ディープラーニングで株価予測をやってみた
ディープラーニングで株価予測をやってみたディープラーニングで株価予測をやってみた
ディープラーニングで株価予測をやってみた
 
WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装
 
SIGNATE 鰹節コンペ2nd Place Solution
SIGNATE 鰹節コンペ2nd Place SolutionSIGNATE 鰹節コンペ2nd Place Solution
SIGNATE 鰹節コンペ2nd Place Solution
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
kaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solutionkaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solution
 
マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法
 
モデルベース要件定義 at BPStudy
モデルベース要件定義 at BPStudyモデルベース要件定義 at BPStudy
モデルベース要件定義 at BPStudy
 
Pycon reject banditアルゴリズムを用いた自動abテスト
Pycon reject banditアルゴリズムを用いた自動abテストPycon reject banditアルゴリズムを用いた自動abテスト
Pycon reject banditアルゴリズムを用いた自動abテスト
 
Fertility Database Software: MedITEX IVF
Fertility Database Software: MedITEX IVFFertility Database Software: MedITEX IVF
Fertility Database Software: MedITEX IVF
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニングOptuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
 
Bert for multimodal
Bert for multimodalBert for multimodal
Bert for multimodal
 
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
 
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試すRaspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試す
 
Android/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニングAndroid/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニング
 
Scalaの新規事業でScalaの未経験者をオンボーディング
Scalaの新規事業でScalaの未経験者をオンボーディングScalaの新規事業でScalaの未経験者をオンボーディング
Scalaの新規事業でScalaの未経験者をオンボーディング
 

Similaire à three.js の紹介 (6)

Twincal
TwincalTwincal
Twincal
 
Potato03 KotlinでAndroidアプリ開発(後編)
Potato03 KotlinでAndroidアプリ開発(後編)Potato03 KotlinでAndroidアプリ開発(後編)
Potato03 KotlinでAndroidアプリ開発(後編)
 
Rubyistのためのkotlin紹介
Rubyistのためのkotlin紹介Rubyistのためのkotlin紹介
Rubyistのためのkotlin紹介
 
Apache CloudStack コントリビューション
Apache CloudStack コントリビューションApache CloudStack コントリビューション
Apache CloudStack コントリビューション
 
点群処理
点群処理点群処理
点群処理
 
TwYM
TwYMTwYM
TwYM
 

Plus de Sho Hosoda

Plus de Sho Hosoda (7)

Hanamaru Renderer for レイトレ合宿5‽
Hanamaru Renderer for レイトレ合宿5‽Hanamaru Renderer for レイトレ合宿5‽
Hanamaru Renderer for レイトレ合宿5‽
 
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングシェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
 
Immutable List Gem (KLab ALM版)
Immutable List Gem (KLab ALM版)Immutable List Gem (KLab ALM版)
Immutable List Gem (KLab ALM版)
 
カメラで商品検索
カメラで商品検索カメラで商品検索
カメラで商品検索
 
TwinCal(学生のためのアプリ開発コンテストVer.)
TwinCal(学生のためのアプリ開発コンテストVer.)TwinCal(学生のためのアプリ開発コンテストVer.)
TwinCal(学生のためのアプリ開発コンテストVer.)
 
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
 
Twitter名刺ジェネレータ
Twitter名刺ジェネレータTwitter名刺ジェネレータ
Twitter名刺ジェネレータ
 

three.js の紹介