SlideShare a Scribd company logo
1 of 17
Download to read offline
3D 描画 API
大江ゼミ3年 中川武憲
Agenda
・3D 描画 API とは
・DirectX
・OpenGL
・WebGL
・OpenCV
・描画の仕組み
・WebGL 入門
・デモ
3D 描画 API とは
3D 描画 API
仮想 3 次元空間上に描画するためのグラフィックス
ハードウェア API (ライブラリ)である。
DirectX や OpenGL がある。
これらを利用することで、開発者は抽象化された API
を利用して、ハードウェアの差異を気にすること無く
プログラムを組むことに専念できる。
DirectX
米 Microsoft 社が開発しているマルチメディア処理
用のライブラリである。
3D グラフィックスだけでなく、オーディオやマウ
ス・キーボード・ゲームパッドからの入力など、
一通りのマルチメディア処理機能を備えている。
しかし、 Windows と Xbox でしか利用できない。
OpenGL
クロスプラットフォームに対応した 3D グラフィックス処理用の
API。
仕様が公開され、誰でも自由に利用することが出来る。
DirectX と違い、 3D グラフィックス処理の機能しか備えていない。
オーディオは OpenAL といった別のライブラリを使う必要がある。
OpenGL ES といった組み込みシステム向けのサブセットが存在して
おり、 Android や iOS、 ニンテンドー3DS などに採用されている。
WebGL
OpenGL 2.0 若しくは OpenGL ES 2.0 をサポート
するプラットフォーム上で利用できる 3D グラ
フィックスのための標準仕様。
Flash Player や Silverlight といった特別なプラグイ
ンを利用すること無くハードウェア・アクセラレー
トされた 3 D グラフィックスの描画を可能とする。
OpenCV
オープンソースの画像処理用のライブラリ。
動画処理も可能でクロスプラットフォーム対応。
行列演算、フィルター処理、特徴抽出、オブジェ
クト検出、オブジェクトトラッキング、カメラキャ
リブレーション、機械学習、パノラマ合成などの
機能を備える。
WebGL 入門
WebGL 入門
WebGL は JavaScript と OpenGL ES 2.0 のバ
インディングであり、 JavaScript で描画命令
を記述し、 HTML の canvas 要素に描画する
ことが出来る。
WebGL 入門
ちなみに、ブラウザ上でオーディオを扱う場合は
WebAudio API を用いる。
左右の音を自在に操作することや、複数の音のミッ
クス、任意のエフェクターの設定など高度な API
が用意されている。
WebGL 入門
canvas 要素の取得
↓
WebGL Context の取得
↓
初期化処理
↓
Shader の読み込み (GLSL ES 3.0 に準拠)
↓
Shader プログラムの生成
↓
attribute, uniform 変数のバインディング
↓
描画
シェーディング
3D グラフィックスにおいて、光源とオブ
ジェクトの形状をもとに陰影を付ける事を
シェーディングと言う。
シェーディング言語
シェーディングを行うことに特化し、抽象化さ
れた言語。
OpenGL では
GLSL (OpenGL Shading Language) を用いる。
WebGL では GLSL ES 3.0 が使える。
シェーダ
Fragment Shader: ピクセル情報の操作
- 色情報
Vertex Shader: 頂点情報の操作
- 頂点の位置情報
進
http://www.amazon.co.jp/dp/4832244140
参考資料
・Getting started with WebGL - WebGL | MDN
https://developer.mozilla.org/ja/docs/Web/WebGL/
Getting_started_with_WebGL
・Learning WebGLで学ぶWebGL入門
http://www.slideshare.net/nakamura001/learning-webgl-
webgl
・[連載]やってみれば超簡単! WebGL と GLSL で始める、
はじめてのシェーダコーディング(1) - Qiita
http://qiita.com/doxas/items/b8221e92a2bfdc6fc211

More Related Content

Similar to WebGL

Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCineSoft
 
devsumi2012 17-D-1 Kinectで創る10年後のカタチ
devsumi2012 17-D-1 Kinectで創る10年後のカタチdevsumi2012 17-D-1 Kinectで創る10年後のカタチ
devsumi2012 17-D-1 Kinectで創る10年後のカタチKaoru NAKAMURA
 
JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介Isao Ebisujima
 
MixedRealityGraphicsTools KumamotoHLMeetup
MixedRealityGraphicsTools KumamotoHLMeetupMixedRealityGraphicsTools KumamotoHLMeetup
MixedRealityGraphicsTools KumamotoHLMeetupAsahiSakamoto
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NETAkira Inoue
 
ScratchとAzure FunctionsのBlocklyな関係
ScratchとAzure FunctionsのBlocklyな関係ScratchとAzure FunctionsのBlocklyな関係
ScratchとAzure FunctionsのBlocklyな関係Masuda Tomoaki
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platformToru Yamaguchi
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力Keiji Ariyama
 
HoloLensとWindows Mixed Reality が実現する新しい世界
HoloLensとWindows Mixed Reality が実現する新しい世界HoloLensとWindows Mixed Reality が実現する新しい世界
HoloLensとWindows Mixed Reality が実現する新しい世界Kaoru NAKAMURA
 
OpenGL ES Introduction
OpenGL ES IntroductionOpenGL ES Introduction
OpenGL ES IntroductionDaiki Ijima
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Yuya Yamaki
 
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術Satoshi Yamafuji
 
3Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.13Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.1ITDORAKU
 
Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.Akira Inoue
 
UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座Yuichi Ishii
 
知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみるonotchi_
 
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016Isezaki Toshiaki
 
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろうVisual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろうMasafumi Takahashi
 

Similar to WebGL (20)

Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
 
devsumi2012 17-D-1 Kinectで創る10年後のカタチ
devsumi2012 17-D-1 Kinectで創る10年後のカタチdevsumi2012 17-D-1 Kinectで創る10年後のカタチ
devsumi2012 17-D-1 Kinectで創る10年後のカタチ
 
JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介
 
MixedRealityGraphicsTools KumamotoHLMeetup
MixedRealityGraphicsTools KumamotoHLMeetupMixedRealityGraphicsTools KumamotoHLMeetup
MixedRealityGraphicsTools KumamotoHLMeetup
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
ScratchとAzure FunctionsのBlocklyな関係
ScratchとAzure FunctionsのBlocklyな関係ScratchとAzure FunctionsのBlocklyな関係
ScratchとAzure FunctionsのBlocklyな関係
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
 
Microsoft Edge概要 物江氏
Microsoft Edge概要 物江氏Microsoft Edge概要 物江氏
Microsoft Edge概要 物江氏
 
HoloLensとWindows Mixed Reality が実現する新しい世界
HoloLensとWindows Mixed Reality が実現する新しい世界HoloLensとWindows Mixed Reality が実現する新しい世界
HoloLensとWindows Mixed Reality が実現する新しい世界
 
OpenGL ES Introduction
OpenGL ES IntroductionOpenGL ES Introduction
OpenGL ES Introduction
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
 
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
 
3Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.13Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.1
 
Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.
 
UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座
 
知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる
 
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
 
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろうVisual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
 
GTC 2019 NVIDIA NEWS
GTC 2019 NVIDIA NEWSGTC 2019 NVIDIA NEWS
GTC 2019 NVIDIA NEWS
 

More from Takenori Nakagawa (20)

TensorFlow 入門
TensorFlow 入門TensorFlow 入門
TensorFlow 入門
 
機械学習を用いたパターンロック認証の強化手法
機械学習を用いたパターンロック認証の強化手法機械学習を用いたパターンロック認証の強化手法
機械学習を用いたパターンロック認証の強化手法
 
Docker で Deep Learning
Docker で Deep LearningDocker で Deep Learning
Docker で Deep Learning
 
GitHub Travis-CI Go!
GitHub Travis-CI  Go!GitHub Travis-CI  Go!
GitHub Travis-CI Go!
 
01.app
01.app01.app
01.app
 
Service Workers Push API Hands-on
Service Workers Push API Hands-onService Workers Push API Hands-on
Service Workers Push API Hands-on
 
Service Workers
Service WorkersService Workers
Service Workers
 
OpenGL 3DCG
OpenGL 3DCGOpenGL 3DCG
OpenGL 3DCG
 
01:artificial life
01:artificial life01:artificial life
01:artificial life
 
後期05
後期05後期05
後期05
 
後期03
後期03後期03
後期03
 
後期02
後期02後期02
後期02
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
phpck
phpckphpck
phpck
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub Pages
 
OpenIL vol.1
OpenIL vol.1OpenIL vol.1
OpenIL vol.1
 
後期講座08
後期講座08後期講座08
後期講座08
 
後期講座07
後期講座07後期講座07
後期講座07
 
後期講座05
後期講座05後期講座05
後期講座05
 
後期講座03
後期講座03後期講座03
後期講座03
 

WebGL