SlideShare a Scribd company logo
1 of 53
Download to read offline
Media Art II 2013
第7回 : openFrameworks
3Dグラフィクス、OpenGL
多摩美術大学情報デザイン学科メディア芸術コース
2013年10月28日
田所 淳
今日の内容
‣

openFrameworksの、3D機能、OpenGLの機能を中心に
取り上げます
今日の内容
‣

3DやOpenGLに関する機能を概観します
クラス名

機能

ofBox, ofSphere

3Dプリミティブオブジェクトの描画

ofEasyCam

簡単に利用可能なカメラ(視点)機能

ofLight

ライティング効果

ofMesh

3D物体の全ての頂点情報を持ったデータ

ofVBO

3Dシーンの物体の情報(位置・色)の保存

ofShader

プログラマブルシェーダ
3Dプリミティブ図形の描画
ofBox、ofSphere
3Dプリミティブ図形の描画 ofBox、ofSphere
‣

openFrameworks v080から、3Dの基本図形の描き方が
変化
!

‣

球体: ofSphere → ofSpherePrimtive

‣

立方体: ofBox → ofBoxPrimitive
!

‣

ofRectやofCircleのように、testApp::draw() 関数内に記
述して座標とサイズを指定するだけで簡単に利用可能
3Dプリミティブ図形の描画 ofBox、ofSphere
‣

testApp.h

#pragma once

!

#include "ofMain.h"

!

class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void
void
void
void
void
void
void
void
void

keyPressed(int key);
keyReleased(int key);
mouseMoved(int x, int y);
mouseDragged(int x, int y, int button);
mousePressed(int x, int y, int button);
mouseReleased(int x, int y, int button);
windowResized(int w, int h);
dragEvent(ofDragInfo dragInfo);
gotMessage(ofMessage msg);

ofBoxPrimitive box; // 立方体プリミティブ
ofSpherePrimitive sphere; // 球プリミティブ
};
3Dプリミティブ図形の描画 ofBox、ofSphere
‣

testApp.cpp

#include "testApp.h"

!

void testApp::setup(){
ofBackground(0);
}

!

void testApp::update(){
}

!

void testApp::draw(){
ofTranslate(ofGetWidth()/2, ofGetHeight()/2);
ofSetColor(255);
// 立方体
box.set(200); // サイズ設定
box.setPosition(-150, 0, 0); // 位置
box.drawWireframe(); // ワイヤーフレームを描画
// 球
sphere.set(100, 16); // 半径と面の細かさ
sphere.setPosition(150, 0, 0); // 位置
sphere.drawWireframe(); // ワイヤーフレームを描画
}
3Dプリミティブ図形の描画 ofBox、ofSphere
‣

完成!!
視点をインタラクティブに移動
ofEasyCam
視点をインタラクティブに移動 - ofEasyCam
‣

次に、この図形を様々な角度から眺められるようにする

‣

物体を動かすのではなく、視点(カメラ)を移動して、物体
を注視する角度を変更してみる

‣

視点を指定するofEasyCamというクラスがあり、とても
簡単に視点の移動が可能

‣

より詳細な視点や画角などの指定には、ofCameraという
クラスもある
視点をインタラクティブに移動 - ofEasyCam
‣

testApp.h

#pragma once

!

#include "ofMain.h"

!

class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void
void
void
void
void
void
void
void
void

keyPressed(int key);
keyReleased(int key);
mouseMoved(int x, int y);
mouseDragged(int x, int y, int button);
mousePressed(int x, int y, int button);
mouseReleased(int x, int y, int button);
windowResized(int w, int h);
dragEvent(ofDragInfo dragInfo);
gotMessage(ofMessage msg);

ofBoxPrimitive box; // 立方体プリミティブ
ofSpherePrimitive sphere; // 球プリミティブ
ofEasyCam cam; // カメラ
};
視点をインタラクティブに移動 - ofEasyCam
‣

testApp.cpp

… (前略) …

!

void testApp::draw(){
cam.begin(); // カメラ開始
ofSetColor(255);
// 立方体
box.set(200); // サイズ設定
box.setPosition(-150, 0, 0); // 位置
box.drawWireframe(); // ワイヤーフレームを描画
// 球
sphere.set(100, 16); // 半径と面の細かさ
sphere.setPosition(150, 0, 0); // 位置
sphere.drawWireframe(); // ワイヤーフレームを描画
cam.end(); // カメラ終了
}
視点をインタラクティブに移動 - ofEasyCam
‣

testApp.cpp

… (前略) …

!

void testApp::draw(){
cam.begin(); // カメラ開始
ofSetColor(255);
// 立方体

camera.begin( )と

box.set(200); // サイズ設定

camera.end( )で囲まれた範囲

box.setPosition(-150, 0, 0); // 位置

が、マウスのドラッグで視点変
更可能となる

box.drawWireframe(); // ワイヤーフレームを描画
// 球
sphere.set(100, 16); // 半径と面の細かさ
sphere.setPosition(150, 0, 0); // 位置
sphere.drawWireframe(); // ワイヤーフレームを描画
cam.end(); // カメラ終了
}
視点をインタラクティブに移動 - ofEasyCam
‣

マウスをドラッグすると物体を回転できる
ライティング
ofLight
ライティング - ofLight
‣

プリミティブを描画する命令
‣
‣

‣

プリミティブ.drawWireframe() → ワイヤーフレーム
プリミティブ.draw() → 塗り潰し

実際にやってみる
ライティング - ofLight
‣

testApp.cpp

void testApp::draw(){
cam.begin(); // カメラ開始
ofSetColor(255);
// 立方体
box.set(200); // サイズ設定
box.setPosition(-150, 0, 0); // 位置
box.draw(); // 塗りつぶしで描画

←ココ

// 球
sphere.set(100, 16); // 半径と面の細かさ
sphere.setPosition(150, 0, 0); // 位置
sphere.draw(); // 塗りつぶしで描画
cam.end(); // カメラ終了
}

←ココ
ライティング - ofLight
‣

陰影も何もない、のっぺりとした図形になってしまう
ライティング - ofLight
‣

なぜ、陰影のないのっぺりとした図形になってしまうのか?

‣

ライティングがされていないから

‣

適切な照明を物体に照射することで、リアルな陰影が表現
される

‣

ofLightクラスを使用する
ライティング - ofLight
‣

ofLightでは「Phongシェーディング」というアルゴリズ
ムで、物体にリアルな陰影や反射を付加している

‣

3Dグラフィックにおいて、モデリングされた面上の点に
影をつけるための照明と陰影モデル

‣

ユタ大学のBui Tuong Phongによって開発 (1973)
ライティング - ofLight
‣

Phongシェーディング

‣

3つの光の反射の強度と色を指定する
‣

鏡面反射 (Specular)

‣

拡散反射 (Diffuse)

‣

環境反射 (Ambient)
ライティング - ofLight
‣

testApp.h

#pragma once

!

#include "ofMain.h"

!

class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void
void
void
void
void
void
void
void
void

keyPressed(int key);
keyReleased(int key);
mouseMoved(int x, int y);
mouseDragged(int x, int y, int button);
mousePressed(int x, int y, int button);
mouseReleased(int x, int y, int button);
windowResized(int w, int h);
dragEvent(ofDragInfo dragInfo);
gotMessage(ofMessage msg);

ofBoxPrimitive box; // 立方体プリミティブ
ofSpherePrimitive sphere; // 球プリミティブ
ofEasyCam cam; // カメラ
ofLight light; // ライト
};
ライティング - ofLight
‣

testApp.cpp

… (前略) …

!

void testApp::setup(){
ofBackground(0);
// ライティングを有効に
light.enable();
// スポットライトを配置
light.setSpotlight();
// 照明の位置
light.setPosition(-100, 100, 100);
// 環境反射光の色
light.setAmbientColor(ofFloatColor(0.5, 0.2, 0.2, 1.0));
// 拡散反射光の色
light.setDiffuseColor(ofFloatColor(0.5, 0.5, 1.0));
// 鏡面反射光の色
light.setSpecularColor(ofFloatColor(1.0, 1.0, 1.0));
}

!

… (後略) …
ライティング - ofLight
‣

立体のの前後の重なりが、おかしい!?
ライティング - ofLight
‣

openFrameworksでは、そのままの設定では後から実行
した命令がどんどん上のレイヤーに描かれる

‣

3Dの立体の場合、有り得ない重なりになることも

‣

DEPTH TEST (深度テスト) を有効にする必要があり

‣

ofEnableDepthTest() で有効になる
ライティング - ofLight
‣

testApp.cpp を修正

… (前略) …

!

void testApp::setup(){
ofBackground(0);
ofEnableDepthTest(); // 深度テストを有効に
ofEnableSmoothing(); // 表示をスムースに

←ココ

// ライティングを有効に
light.enable();
// スポットライトを配置
light.setSpotlight();
// 照明の位置
light.setPosition(-100, 100, 100);
// 環境反射光の色
light.setAmbientColor(ofFloatColor(0.5, 0.2, 0.2, 1.0));
// 拡散反射光の色
light.setDiffuseColor(ofFloatColor(0.5, 0.5, 1.0));
// 鏡面反射光の色
light.setSpecularColor(ofFloatColor(1.0, 1.0, 1.0));
}

!

… (後略) …
ライティング - ofLight
‣

正しい重なりに
メッシュ (頂点情報の集合)
ofMesh
メッシュ (頂点情報の集合) - ofMesh
‣

立方体や球体などの単純な図形ではなく、より複雑な曲面
や多面体などの3Dの形状を描くにはどうすれば良いのか?

‣

ポリゴンメッシュ (Polygon Mesh) を使用する

‣

openFrameworksでは、ofMeshクラスで生成できる
メッシュ (頂点情報の集合) - ofMesh
‣

メッシュによって構成された複雑な形状の例
メッシュ (頂点情報の集合) - ofMesh
‣

メッシュ (ポリゴンメッシュ Polygon Mesh)

‣

3Dグラフィックのモデリングの多面体オブジェクトの形
状を定義する頂点、辺、面の集合のこと

‣

通常は三角形や四角形のポリゴン(面)によって構成される
メッシュ (頂点情報の集合) - ofMesh
‣

sin関数を利用して波を生成し、その3Dの形態をメッシュ
で表現してみる

‣

まず、x, y軸方向に均等に並ぶグリッドを作成

‣

グリッドの頂点をそれぞれ、x軸、y軸で異なる周波数のsin
関数で上下に振動させる

‣

頂点の座標を描画する
メッシュ (頂点情報の集合) - ofMesh
‣

testApp.h

#pragma once

!

#include "ofMain.h"

!

class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void
void
void
void
void
void
void
void
void

keyPressed(int key);
keyReleased(int key);
mouseMoved(int x, int y);
mouseDragged(int x, int y, int button);
mousePressed(int x, int y, int button);
mouseReleased(int x, int y, int button);
windowResized(int w, int h);
dragEvent(ofDragInfo dragInfo);
gotMessage(ofMessage msg);

ofEasyCam cam; // カメラ
ofMesh mesh; // 3Dメッシュ
int w, h; // メッシュの幅と高さ
};
メッシュ (頂点情報の集合) - ofMesh
‣

testApp.cpp

#include "testApp.h"

!

void testApp::setup(){
// 画面の設定
ofBackground(0);
ofEnableDepthTest();
cam.setDistance(100);
// メッシュの幅と高さ
w = 200;
h = 200;
// 頂点の色を初期化
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
mesh.addColor(ofFloatColor(0.5, 0.8, 1.0));
}
}
}
メッシュ (頂点情報の集合) - ofMesh
‣

testApp.cpp

void testApp::update(){
// まず全ての頂点情報を削除
mesh.clearVertices();
// 全ての頂点の位置を更新して頂点情報として追加
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
float x = sin(i * 0.1 + ofGetElapsedTimef())*10.0;
float y = sin(j*0.15 + ofGetElapsedTimef()) * 10.0;
float z = x + y;
mesh.addVertex(ofVec3f(i - w/2, j - h/2, z));
}
}
}
メッシュ (頂点情報の集合) - ofMesh
‣

testApp.cpp

void testApp::draw(){
// メッシュの描画
ofSetHexColor(0xffffff);
cam.begin(); // カメラ開始
// 頂点の位置をドットで表示
glPointSize(2.0);
glEnable(GL_POINT_SMOOTH);
mesh.drawVertices();
cam.end(); // カメラ終了
// ログの表示
string info;
info = "Vertex num = " + ofToString(w * h, 0) + "n";
info += "FPS = " + ofToString(ofGetFrameRate(), 2);
ofDrawBitmapString(info, 30, 30);
}
メッシュ (頂点情報の集合) - ofMesh
‣

完成!!
VBO (頂点バッファオブジェクト)
ofVBO
VBO (頂点バッファオブジェクト) - ofVBO
‣

ポリゴンメッシュなどの複雑な3D形状

‣

大量の頂点の情報を高速に演算する必要がある

‣

CPUに高負荷な演算
!

‣

VBO (頂点バッファオブジェクト)

‣

あらかじめ頂点データをOpenGL側に作成しておき、グラフィ
クスカード側で演算を行う手法

‣

CPUの負荷を減らし、高速な描画を実現する
!

‣

先程ofMeshで作成した3Dの波を、ofVBOによる計算に変更し
てみる
VBO (頂点バッファオブジェクト) - ofVBO
‣

VBOのイメージ
GPU

大量の頂点
座標情報

高速演算

大量の頂点
色情報

CPU
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.h

#pragma once

!

#include "ofMain.h"

!

class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
… (中略) …
// クラス定数
static const int WIDTH = 200;
static const int HEIGHT = 200;
static const int NUM_PARTICLES = WIDTH * HEIGHT;
ofEasyCam cam; // カメラ
ofVbo myVbo; // VBO
ofVec3f myVerts[NUM_PARTICLES]; // 頂点の座標
ofFloatColor myColor[NUM_PARTICLES]; // 頂点の色情報
};
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.cpp

#include "testApp.h"

!

const int testApp::WIDTH;
const int testApp::HEIGHT;
const int testApp::NUM_PARTICLES;

!

void testApp::setup(){
// 画面の設定
ofBackground(0);
ofEnableDepthTest();
ofEnableBlendMode(OF_BLENDMODE_ADD);
cam.setDistance(100);
// 頂点情報を初期化
for (int i = 0; i <
for (int j = 0;
myVerts[j *
myColor[j *
}
}

WIDTH; i++) {
j < HEIGHT; j++) {
WIDTH + i].set(i - WIDTH/2, j - HEIGHT/2, 0);
WIDTH + i].set(0.5, 0.8, 1.0, 1.0);

// 頂点バッファに位置と色の情報を設定
myVbo.setVertexData(myVerts, NUM_PARTICLES, GL_DYNAMIC_DRAW);
myVbo.setColorData(myColor, NUM_PARTICLES, GL_DYNAMIC_DRAW);
}
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.cpp

void testApp::update(){
// 頂点の座標を更新
for (int i = 0; i < WIDTH; i++) {
for (int j = 0; j < HEIGHT; j++) {
float x = sin(i * 0.1 + ofGetElapsedTimef()) * 10.0;
float y = sin(j * 0.15 + ofGetElapsedTimef()) * 10.0;
float z = x + y;
myVerts[j * WIDTH + i] = ofVec3f(i - WIDTH/2, j - HEIGHT/2, z);
}
}
// 頂点バッファの頂点の座標情報を更新
myVbo.updateVertexData(myVerts, NUM_PARTICLES);
}

!

void testApp::draw(){
// VBOの頂点を描画
cam.begin();
glPointSize(2);
myVbo.draw(GL_POINTS, 0, NUM_PARTICLES);
cam.end();
// ログの表示
string info;
info = "Vertex num = " + ofToString(NUM_PARTICLES, 0) + "n";
info += "FPS = " + ofToString(ofGetFrameRate(), 2);
ofDrawBitmapString(info, 30, 30);
}
VBO (頂点バッファオブジェクト) - ofVBO
‣

完成!!
VBO 応用
カメラの明度でメッシュを生成
カメラの明度でメッシュを生成
‣

VBO + Mesh、応用

‣

カメラから映像を入力

‣

映像のそれぞれのピクセルの明さを頂点の高さに

‣

ビデオからの色を、頂点の色に
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.h

#pragma once

!

#include "ofMain.h"

!

class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
… (中略) …
// クラス定数
static const int WIDTH = 640;
static const int HEIGHT = 480;
static const int NUM_PARTICLES = WIDTH * HEIGHT;
ofEasyCam cam; // カメラ
ofLight light; // ライト
ofVbo myVbo; // VBO
ofVec3f myVerts[NUM_PARTICLES]; // 頂点の座標
ofFloatColor myColor[NUM_PARTICLES]; // 頂点の色情報
ofVideoGrabber myVideo;
};

// ビデオキャプチャ
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.cpp

#include "testApp.h"

!

const int testApp::WIDTH;
const int testApp::HEIGHT;
const int testApp::NUM_PARTICLES;

!

void testApp::setup(){
// 画面の設定
ofBackground(0);
ofEnableDepthTest();
ofEnableBlendMode(OF_BLENDMODE_ADD);
cam.setDistance(400);
myVideo.initGrabber(640, 480); // カメラ映像をキャプチャ

!
// 頂点情報を初期化
for (int i = 0; i <
for (int j = 0;
myVerts[j *
myColor[j *
}
}

WIDTH; i++) {
j < HEIGHT; j++) {
WIDTH + i].set(i - WIDTH/2, j - HEIGHT/2, 0);
WIDTH + i].set(1.0, 1.0, 1.0, 1.0);

// 頂点バッファに位置と色の情報を設定
myVbo.setVertexData(myVerts, NUM_PARTICLES, GL_DYNAMIC_DRAW);
myVbo.setColorData(myColor, NUM_PARTICLES, GL_DYNAMIC_DRAW);
}
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.cpp

void testApp::update(){
// カメラからの映像を更新
myVideo.update();
// もしカメラのフレームが更新されていたら
if (myVideo.isFrameNew()) {
// カメラの映像のピクセル情報を抽出
unsigned char * pixels = myVideo.getPixels();
// ピクセルごとに処理
for (int i = 0; i < WIDTH; i++) {
for (int j = 0; j < HEIGHT; j++) {
// ピクセルノRGB値を取得
float r = (float)pixels[j * myVideo.width * 3 + i * 3] / 256.0;
float g = (float)pixels[j * myVideo.width * 3 + i * 3 + 1] / 256.0;
float b = (float)pixels[j * myVideo.width * 3 + i * 3 + 2] / 256.0;
// RGBから明度を算出
float brightness = (r + g + b) / 3.0f;
// 明度から頂点の位置を設定
myVerts[j * WIDTH + i] = ofVec3f(i - WIDTH/2, j - HEIGHT/2, brightness * 256.0);
// 頂点の色はカメラのピクセルの値をそのまま使用
}

myColor[j * WIDTH + i] = ofFloatColor(r, g, b, 0.8);

}
// VBOの座標と色の情報を更新

}

}

myVbo.updateVertexData(myVerts, NUM_PARTICLES);
myVbo.updateColorData(myColor, NUM_PARTICLES);
VBO (頂点バッファオブジェクト) - ofVBO
‣

testApp.cpp

void testApp::draw(){
// VBOを描画
cam.begin();
ofScale(1, -1, 1);
glPointSize(3);
myVbo.draw(GL_POINTS, 0, NUM_PARTICLES);
cam.end();
// ログの表示
string info;
info = "Vertex num = " + ofToString(NUM_PARTICLES, 0) + "n";
info += "FPS = " + ofToString(ofGetFrameRate(), 2);
ofDrawBitmapString(info, 30, 30);
}
カメラの明度でメッシュを生成
‣

完成!!
VBO (頂点バッファオブジェクト) - ofVBO
‣

よりVBOのパワーを実感できるサンプル

‣

大量のパーティクルをnoise関数で飛散させる

‣

それぞれのパーティクルにはテクスチャ画像を貼る

‣

高速にアニメーションしてみる
VBO (頂点バッファオブジェクト) - ofVBO
‣

大量のパーティクルを高速にアニメーション

More Related Content

What's hot

C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
【Unity道場 2月】シェーダを書けるプログラマになろう
【Unity道場 2月】シェーダを書けるプログラマになろう【Unity道場 2月】シェーダを書けるプログラマになろう
【Unity道場 2月】シェーダを書けるプログラマになろうUnity Technologies Japan K.K.
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法MITSUNARI Shigeo
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Yasutaka Kawamoto
 
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvMedia Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvAtsushi Tadokoro
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッドKohsuke Yuasa
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話ushiboy
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門Kota Mizushima
 
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門Atsushi Tadokoro
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるAtsushi Tadokoro
 
Git超入門_座学編.pdf
Git超入門_座学編.pdfGit超入門_座学編.pdf
Git超入門_座学編.pdf憲昭 村田
 
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDocker, Inc.
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方Shigenori Sagawa
 

What's hot (20)

C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
【Unity道場 2月】シェーダを書けるプログラマになろう
【Unity道場 2月】シェーダを書けるプログラマになろう【Unity道場 2月】シェーダを書けるプログラマになろう
【Unity道場 2月】シェーダを書けるプログラマになろう
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvMedia Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
 
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
 
Git超入門_座学編.pdf
Git超入門_座学編.pdfGit超入門_座学編.pdf
Git超入門_座学編.pdf
 
llvm入門
llvm入門llvm入門
llvm入門
 
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 

Viewers also liked

openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習BAtsushi Tadokoro
 
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFメディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFAtsushi Tadokoro
 
青年海外協力隊・フィールド調査団の最終報告書
青年海外協力隊・フィールド調査団の最終報告書青年海外協力隊・フィールド調査団の最終報告書
青年海外協力隊・フィールド調査団の最終報告書Daisuke Miyazaki
 
コンテンツをディレクションするということ
コンテンツをディレクションするということコンテンツをディレクションするということ
コンテンツをディレクションするということYoshihiro Kanematsu
 
インターネット広告代理店の「制作ディレクション」というお仕事
インターネット広告代理店の「制作ディレクション」というお仕事インターネット広告代理店の「制作ディレクション」というお仕事
インターネット広告代理店の「制作ディレクション」というお仕事Koki Kaku
 
色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜Yuudai Tachibana
 
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティングWo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティングthinkjam.Inc.
 
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司schoowebcampus
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論tsukasa obara
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】MOCKS | Yuta Morishige
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座Mariko Yamaguchi
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版MOCKS | Yuta Morishige
 

Viewers also liked (16)

openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
 
マウスでタッチ操作
マウスでタッチ操作マウスでタッチ操作
マウスでタッチ操作
 
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFメディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
 
青年海外協力隊・フィールド調査団の最終報告書
青年海外協力隊・フィールド調査団の最終報告書青年海外協力隊・フィールド調査団の最終報告書
青年海外協力隊・フィールド調査団の最終報告書
 
コンテンツをディレクションするということ
コンテンツをディレクションするということコンテンツをディレクションするということ
コンテンツをディレクションするということ
 
インターネット広告代理店の「制作ディレクション」というお仕事
インターネット広告代理店の「制作ディレクション」というお仕事インターネット広告代理店の「制作ディレクション」というお仕事
インターネット広告代理店の「制作ディレクション」というお仕事
 
色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜
 
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティングWo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
 
カヤックコピー部のコピー講座
カヤックコピー部のコピー講座カヤックコピー部のコピー講座
カヤックコピー部のコピー講座
 
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
 
コンテンツ作りの三原則
コンテンツ作りの三原則コンテンツ作りの三原則
コンテンツ作りの三原則
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 

Similar to Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL

Android OpenGL HandsOn
Android OpenGL HandsOnAndroid OpenGL HandsOn
Android OpenGL HandsOnIkuo Tansho
 
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3DFlashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3DKatsushi Suzuki
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Masahiko Mizuta
 
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネルももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネルTakashi Yoshinaga
 
Ogre3d 基礎
Ogre3d 基礎Ogre3d 基礎
Ogre3d 基礎kw
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DKatsushi Suzuki
 
iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!cocopon
 
怪しいWindowsプログラミング
怪しいWindowsプログラミング怪しいWindowsプログラミング
怪しいWindowsプログラミングnagoya313
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めようAdvancedTechNight
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2dHiroshi Oyamada
 
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Tomoaki Shimizu
 
Real timeimageprocessing
Real timeimageprocessingReal timeimageprocessing
Real timeimageprocessingushiostarfish _
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回Noritada Shimizu
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜勝成 鈴江
 
はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理Takashi Yoshinaga
 

Similar to Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL (20)

Android OpenGL HandsOn
Android OpenGL HandsOnAndroid OpenGL HandsOn
Android OpenGL HandsOn
 
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3DFlashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3D
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
 
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネルももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
 
Arctic.js
Arctic.jsArctic.js
Arctic.js
 
Ogre3d 基礎
Ogre3d 基礎Ogre3d 基礎
Ogre3d 基礎
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
 
iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!
 
怪しいWindowsプログラミング
怪しいWindowsプログラミング怪しいWindowsプログラミング
怪しいWindowsプログラミング
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
 
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
 
Real timeimageprocessing
Real timeimageprocessingReal timeimageprocessing
Real timeimageprocessing
 
CG2013 12
CG2013 12CG2013 12
CG2013 12
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
 
はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理
 
Sencha study
Sencha studySencha study
Sencha study
 
Gocon2013
Gocon2013Gocon2013
Gocon2013
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
 

More from Atsushi Tadokoro

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望Atsushi Tadokoro
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようAtsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Atsushi Tadokoro
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2Atsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Atsushi Tadokoro
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションAtsushi Tadokoro
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Atsushi Tadokoro
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Atsushi Tadokoro
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くAtsushi Tadokoro
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリAtsushi Tadokoro
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使うAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Atsushi Tadokoro
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得Atsushi Tadokoro
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Atsushi Tadokoro
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するAtsushi Tadokoro
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!Atsushi Tadokoro
 

More from Atsushi Tadokoro (20)

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
Tamabi media131118
Tamabi media131118Tamabi media131118
Tamabi media131118
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL