Recommended
PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
PDF
メディア芸術基礎 II Canvas + Javascriptで図形を描く
PDF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
PDF
Media Art II openFrameworks 複数のシーンの管理・切替え
PDF
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
PPTX
PDF
coma Creators session vol.2
PDF
PDF
Media Art II 2013 第5回:openFrameworks Addonを使用する
PDF
メディア・アート II 第1回: ガイダンス openFrameworks入門
PDF
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
PDF
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
PDF
KEY
Core Graphicsでつくる自作UIコンポーネント入門
PDF
PDF
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
KEY
iOSプログラマへ。HTML5 Canvasがおもしろい!
KEY
PDF
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
PDF
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
PDF
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
PDF
KEY
PDF
Interactive Music II Processingによるアニメーション
PDF
openFrameworks Workshop in Kanazawa v001
PDF
PDF
PDF
openFrameworks 外部ファイルを利用する - 画像、動画 - 多摩美メディアアートII
PDF
Interactive Music II ProcessingとSuperColliderの連携1
More Related Content
PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
PDF
メディア芸術基礎 II Canvas + Javascriptで図形を描く
PDF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
PDF
Media Art II openFrameworks 複数のシーンの管理・切替え
PDF
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
PPTX
PDF
coma Creators session vol.2
What's hot
PDF
PDF
Media Art II 2013 第5回:openFrameworks Addonを使用する
PDF
メディア・アート II 第1回: ガイダンス openFrameworks入門
PDF
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
PDF
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
PDF
KEY
Core Graphicsでつくる自作UIコンポーネント入門
PDF
PDF
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
KEY
iOSプログラマへ。HTML5 Canvasがおもしろい!
KEY
PDF
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
PDF
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
PDF
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
PDF
KEY
PDF
Interactive Music II Processingによるアニメーション
PDF
openFrameworks Workshop in Kanazawa v001
PDF
PDF
Viewers also liked
PDF
openFrameworks 外部ファイルを利用する - 画像、動画 - 多摩美メディアアートII
PDF
Interactive Music II ProcessingとSuperColliderの連携1
PDF
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
PDF
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
PDF
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
PDF
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
PDF
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
PDF
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
PDF
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
PDF
Interactive Music II ProcessingとSuperColliderの連携 -2
PDF
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
PDF
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
PDF
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
PDF
Interactive Music II Processing基本
Similar to Tamabi media131118
PPTX
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
PDF
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
PDF
シェーダだけで世界を創る!three.jsによるレイマーチング
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
ex-Workshop06『three.jsを使ってモデリングソフトを試作する』
PDF
簡単!OpenGL ES 2.0フラグメントシェーダー
PPTX
プログラミングで絵をかけるようになりたかった話(2025-03_hajimeteLT)
PDF
three.jsによる一歩進めたグラフィカルな表現
PDF
PDF
PPTX
Ember.js Tokyo event 2014/09/22 (Japanese)
PDF
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
PDF
Flashup 12 Basic Training of Away3D
PPTX
PDF
Wcan 2013 autumn_trident_mizuno
More from Atsushi Tadokoro
PDF
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
PDF
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
PDF
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
PDF
Interactive Music II SuperCollider入門 5 時間構造をつくる
PDF
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
PDF
iTamabi 13 第5回:ARTSAT API 導入
PDF
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
PDF
Tamabi media131118 1. 2. 3. 4. 5. 6. 7. Three.jsとは
‣ WebGL (とCanvas) を使用して高度な3D表現を可能とする、
Javascriptのライブラリ
‣ MITライセンスの、オープンソースプロジェクト
‣ Mr. Doobを中心に多くのコラボレーターと共に開発が現在も進
行中
!
‣ ※ MITライセンス - ソフトウェアライセンスのひとつ
‣ ソフトウェアを誰でも無償で無制限に扱って良い。ただし、著
作権表示および本許諾表示をソフトウェアのすべての複製また
は重要な部分に記載しなければならない。
‣ 作者または著作権者は、ソフトウェアに関してなんら責任を負
わない。
8. 9. 10. 11. 12. 13. 14. 15. 16. Three.jsを使ってみる
‣ テンプレートには描画するコンテナの設定とWebGLのレンダラーの追加が行われている
//画面設定
var b = document.body;
var d = document.documentElement;
var WIDTH = Math.max(b.clientWidth , b.scrollWidth, d.scrollWidth,
d.clientWidth);
var HEIGHT = Math.max(b.clientHeight , b.scrollHeight, d.scrollHeight,
d.clientHeight);
!
//コンテナとレンダラーの配置
var $container = $('#container');
var renderer = new THREE.WebGLRenderer();
renderer.setSize(WIDTH, HEIGHT);
$container.append(renderer.domElement);
17. 18. Three.jsを使ってみる
‣ 次に、カメラとライトの配置
!
// カメラ配置
var camera = new THREE.PerspectiveCamera(45, WIDTH/HEIGHT, 1, 1000);
camera.position.z = 300;
!
// ライト配置
var light
= new
light.position.x =
light.position.y =
light.position.z =
scene.add(light);
THREE.DirectionalLight(0xffffff, 1.5);
0.5;
0.5;
1;
19. 20. 21. 22. 23. 24. 25. Three.jsを使ってみる
‣ メッシュの回転とシーンの追加、レンダリングの部分を変更
// メッシュ生成
var mesh = new THREE.Mesh(geometry, material);
// メッシュをシーンに追加
scene.add(mesh);
!
// マウスの位置でメッシュを回転
renderer.domElement.addEventListener('mousemove', function(e) {
mesh.rotation.x = e.pageY/ 100.0;
mesh.rotation.y = e.pageX/ 100.0;
!
//シーンを描画する
renderer.render(scene, camera);
}, false);
26. 27. 28. Three.jsを使ってみる
‣ マテリアルの設定に、テクスチャを追加
// 立方体のジオメトリとマテリアル設定
var geometry = new THREE.CubeGeometry(100, 100, 100);
// テクスチャを読み込み
var texture
= new THREE.ImageUtils.loadTexture('http://jsrun.it/assets/6/Q/A/m/
6QAmH.jpg3');
// テクスチャを反映
var material = new THREE.MeshLambertMaterial({map: texture});
// メッシュ生成
var mesh = new THREE.Mesh(geometry, material);
// メッシュをシーンに追加
scene.add(mesh);
29. 30. 31. 32. 前回の復習
‣ Javascriptコード
//立方体の表示: 基本
!
//画面設定
var b = document.body;
var d = document.documentElement;
var WIDTH = Math.max(b.clientWidth , b.scrollWidth, d.scrollWidth,
d.clientWidth);
var HEIGHT = Math.max(b.clientHeight , b.scrollHeight, d.scrollHeight,
d.clientHeight);
!
//コンテナとレンダラーの配置
var $container = $('#container');
var renderer = new THREE.WebGLRenderer();
renderer.setSize(WIDTH, HEIGHT);
$container.append(renderer.domElement);
!
//立方体ジオメトリ
var geometry = new THREE.CubeGeometry(100, 100, 100);
//マテリアル
var material = new THREE.MeshLambertMaterial({color: 0x3366cc});
//メッシュの生成
var mesh = new THREE.Mesh(geometry, material);
33. 前回の復習
‣ Javascriptコード
//メッシュの回転
mesh.rotation = {x: 0.5, y: 0.5, z: 0.0};
!
//カメラを配置
var camera = new THREE.PerspectiveCamera(40, WIDTH / HEIGHT, 1, 1000);
camera.position.z = 400;
camera.lookAt(mesh.position);
!
//シーンを生成し、メッシュ追加
var scene = new THREE.Scene();
scene.add(mesh);
!
//ライト追加
var light = new THREE.DirectionalLight(0xffffff, 1.5);
light.position = {x: 0, y: 0.2, z: 1}
scene.add(light);
!
//レンダリング
renderer.render(scene, camera);
34. 35. 36. 37. 38. 39. Three.jsを使用したアニメーション
‣ Javascript
//画面設定
var b = document.body;
var d = document.documentElement;
var WIDTH = Math.max(b.clientWidth , b.scrollWidth, d.scrollWidth,
d.clientWidth);
var HEIGHT = Math.max(b.clientHeight , b.scrollHeight, d.scrollHeight,
d.clientHeight);
!
//Three.jsのシーンに関係するグローバルな変数
var mesh, scene, camera, renderer, light;
!
//プログラム構造
init();
animate();
!
function init() {
!
//コンテナとレンダラーの配置
var $container = $('#container');
renderer = new THREE.WebGLRenderer();
renderer.setSize(WIDTH, HEIGHT);
$container.append(renderer.domElement);
40. Three.jsを使用したアニメーション
‣ Javascript
//立方体ジオメトリ
var geometry = new THREE.CubeGeometry(100, 100, 100);
//マテリアル
!
var material = new THREE.MeshLambertMaterial({color: 0x3366cc});
//ジオメトリとマテリアルから、メッシュの生成
mesh = new THREE.Mesh(geometry, material);
mesh.rotation.x += 20 / 180.0 * Math.PI;
//カメラを配置
camera = new THREE.PerspectiveCamera(40, WIDTH / HEIGHT, 1, 1000);
camera.position.z = 400;
camera.lookAt(mesh.position);
//シーンを生成し、メッシュ追加
scene
= new THREE.Scene();
scene.add(mesh);
//ライト追加
light
= new THREE.DirectionalLight(0xffffff, 1.5);
light.position = {x: 0, y: 0.2, z: 1}
scene.add(light);
}
41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 応用:たくさんの図形をアニメーション
‣ Javascript
//画面設定
var b = document.body;
var d = document.documentElement;
var WIDTH = Math.max(b.clientWidth , b.scrollWidth, d.scrollWidth,
d.clientWidth);
var HEIGHT = Math.max(b.clientHeight , b.scrollHeight, d.scrollHeight,
d.clientHeight);
!
//Three.jsのシーンに関係するグローバルな変数
var
var
var
var
var
var
!
scene, camera, renderer, light;
mouseX = 0, mouseY = 0;
windowHalfX = window.innerWidth / 2;
windowHalfY = window.innerHeight / 2;
mesh = [];
NUM = 100;
//プログラム構造
init();
animate();
!
function init() {
!
//コンテナとレンダラーの配置
var $container = $('#container');
52. 応用:たくさんの図形をアニメーション
‣ Javascript
//立方体ジオメトリ
var geometry = new THREE.CubeGeometry(100, 100, 100);
//マテリアル
var material = new THREE.MeshLambertMaterial({color: 0x3366cc});
//くりかえし
for(var i = 0; i < NUM; i++){
//ジオメトリとマテリアルから、メッシュの生成
mesh[i] = new THREE.Mesh(geometry, material);
mesh[i].rotation.x += i / 180.0 * Math.PI;
scene.add(mesh[i]);
}
//カメラを配置
camera = new THREE.PerspectiveCamera(40, WIDTH / HEIGHT, 1, 1000);
camera.position.z = 400;
camera.lookAt(mesh[0].position);
//ライト追加
light
= new THREE.DirectionalLight(0xffffff, 1.5);
light.position = {x: 0, y: 0.2, z: 1}
scene.add(light);
53. 応用:たくさんの図形をアニメーション
‣ Javascript
//アニメーション
function animate() {
//くりかえし
for(var i = 0; i < NUM; i++){
mesh[i].rotation.y += i / 18000.0 * Math.PI;
mesh[i].scale.x = 0.8 * Math.sin( i * Date.now() / 20000.0) + 1.0;
mesh[i].scale.y = 0.8 * Math.cos( i * Date.now() / 30000.0) + 1.0;
}
requestAnimationFrame( animate );
render();
}
!
//レンダリング
function render() {
!
//カメラの視点をマウスで移動
camera.position.x += ( mouseX - camera.position.x );
camera.position.y += ( - mouseY - camera.position.y );
camera.lookAt(mesh[0].position);
//レンダリング
renderer.render(scene, camera);
}
54. 55.