• 検索結果がありません。

3D CG Kageyama (Kobe Univ.) Visualization / 22

N/A
N/A
Protected

Academic year: 2021

シェア "3D CG Kageyama (Kobe Univ.) Visualization / 22"

Copied!
22
0
0

読み込み中.... (全文を見る)

全文

(1)

WebGL

によるデータ可視化入門

全体のまとめ 陰山 聡 神戸大学 システム情報学研究科 計算科学専攻

2014.07.15

情報可視化論X0212014年前期) 情報知能演習室

(2)

3D CG

ライブラリ

演習

(3)

全体のまとめ

(4)

シェーダとシェーディング言語:

GLSL

OpenGL

シェーディング言語(

OpenGL SL, GLSL

4.0

GPU

を使うための言語

CG

ソースコード

=

OpenGL

ソースコード

+

GLSL(

フラグメントシェーダ)ソースコード

+

GLSL(

頂点シェーダ)ソースコード

(5)

WebGL

とは

WebBL =

シェーダを使い、

HTML5

canvas

に、

JavaScript

3D CG

を書くための

API

(6)

WebGL

の特徴

クロスプラットフォーム オープンスタンダード

Web

GPU

を使ったレンダリングが可能 開発・利用が容易: プラグイン不要 ソースコードが見える グラフィックス(

OpenGL

)と

UI

(ウィンドウ管理やイベント処理) の分離が明白

(7)

WebGL

のグラフィックスパイプライン

Web アプリ HTML + CSS + JavaScript + シェーダソースコード + オブジェクトデータ WebGL JavaScript API 頂点シェーダ プリミティブ組み立て ラスタ化 フラグメントシェーダ シザーテスト マルチサンプリング ステンシルテスト デプステスト アルファブレンディング ディザリング WebGL用描画バッファ スクリーン cavasの他の画像

(8)

シェーダ

頂点シェーダ(バーテックスシェーダ)とフラグメントシェーダ Web アプリ HTML + CSS + JavaScript + シェーダソースコード + オブジェクトデータ WebGL JavaScript API 頂点シェーダ プリミティブ組み立て ラスタ化 フラグメントシェーダ

(9)

WebGL

アプリケーション

Web

アプリ =

HTML + CSS + JavaScript

WebGL

アプリ =

HTML + CSS + JavaScript +

シェーダ言語(

OpenGL

SL

(10)

頂点シェーダ

各頂点に対して処理を行う

並列処理

n

個の頂点があれば

n

個の頂点シェーダプロセッサを同時に実行さ

(11)

頂点シェーダの入出力データ

頂点シェーダ 頂点シェーダ用ソースコード (GLSL) ユーザ定義uniform変数 (変換行列、光源位置) 頂点attribute変数 (座標、色など) 組み込み変数 gl_Position gl_FrontFacing g_lPointSize ユーザ定義の varying変数

(12)

フラグメントシェーダの入出力

全てのフラグメントで並列処理。シェーディング言語でプログラム。 フラグメント シェーダ フラグメントシェーダ用 ソースコード (GLSL) ユーザ定義varying変数 組み込み変数 gl_Position gl_FrontFacing g_lPointSize 組み込み変数 gl_FragColor ユニフォーム変数 テクスチャ用サンプラ

(13)

varying

変数の補間

頂点シェーダ からフラグメントシェーダへは

varying

変数を通じて 情報を送る。 各フラグメントの

varying

変数値は自動的に線形補間される。 varyingValue_2 varyingValue_3 varyingValue_1

(14)

WebGL

での

3D

描画プログラム

頂点データの生成と転送 法線データの生成と転送 テクスチャデータの生成と転送 物体の座標変換(

4

4

列) 材質(反射)特性設定 照明設定 射影変換(

4

4

列) ・・・面倒

(15)

3D CG

ライブラリ

(16)

WebGL

JavaScript

ライブラリ

WebGL

のラッパ

Three.js

Away3D TypeScript

Babylon.js

http://threejs.org

(17)

Three.js sample

回転する直方体

サンプルコード

three js sample cube.js

必要なライブラリ:

three.min.js

(18)

<html> <head>

<title>My first Three.js app</title>

<style>canvas { width: 100%; height: 100% }</style> </head>

<body>

<script src="js/three.min.js"></script> <script>

var scene = new THREE.Scene();

var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); var renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement);

var geometry = new THREE.CubeGeometry(1,1,1);

var material = new THREE.MeshBasicMaterial({color: 0x00ff00}); var cube = new THREE.Mesh(geometry, material);

(19)

scene.add(cube); camera.position.z = 5;

var render = function () { requestAnimationFrame(render); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); }; render(); </script> </body> </html>

(20)
(21)

レポート課題

(22)

照明とテクスチャマッピング、アニメーションを用いた

WebGL

プロ グラムを作れ。

Three.js

などのライブラリは使わないこと。 提出はメールで。添付ファイルは少なくとも2つ。 1. レポート PDF ファイル:ファイル名: report 05.pdf 2. 作成した HTML ファイル:ファイル名:report 05.html ファイル名中のアンダースコア( )は半角 ファイル拡張子はhtmlとし、htmとしない

gmail

アドレス:

kageyama.lecture@...

メールのタイトル:情報可視化論 レポート

5

レポートには以下を記述すること 学籍番号と氏名 何を描いたか 描いた図形のキャプチャ図 独自のテクスチャや関数などがあればそのファイル ウェブ公開時、匿名を希望する場合はペンネーム 締め切り:

7/21

(月)

23:59

アーカイブはしないでください。

参照

関連したドキュメント

メモ  : 権利の詳細な管理は、 BlackBerry WorkspacesEnterprise ES モード BlackBerry Workspaces およ. び Enterprise ES ( 制限付きフルアクセス )

サーバー API 複雑化 iOS&amp;Android 間で複雑な API

(3) We present a JavaScript library 2 , that contains all the al- gorithms described in this paper, and a Web platform, AGORA 3 (Automatic Graph Overlap Removal Algorithms), in

(4) 現地参加者からの質問は、従来通り講演会場内設置のマイクを使用した音声による質問となり ます。WEB 参加者からの質問は、Zoom

①アプリをアンインストール スタート > 設定 > アプリ > アプリと機能 > Docan Browser5. ②関連ファイル削除(1)

Conditions for transmitter specifications unless otherwise specified with the antenna network from AX−SFUS Application Note: Sigfox Compliant Reference Design and at 902.2 MHz?.

Conditions for transmitter specifications unless otherwise specified with the antenna network from AX−SFEU Application Note: Sigfox Compliant Reference Design and at 868.130

[r]