SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
ISFで遊ぼう!

OFJP #studygroup meetup 2015 Fall
2015 Dec. 13th 原田康
OFJP #studygroup meetup 2015 Fall
こんにちは
• バスキュール所属
• 最近のお仕事では WebGL, Android アプリなど
• oF 歴1年半
• Shader を書くのが好き
• メインの活動はトイレのサインを集めること

https://www.facebook.com/groups/washroom.of.the.day/

https://www.instagram.com/washroomoftheday/
2
OFJP #studygroup meetup 2015 Fall
ISF
Interactive Shader Format の略。GLSL をベースにした VDMX など
で使えるエフェクトやジェネレーター。Web でも公開されている。
3
OFJP #studygroup meetup 2015 Fall
VDMX
MacOS 用 VJ アプリケーション。
4
デモ版ダウンロード

http://vidvox.net/download/vdmx_demo

保存ができないこと以外は機能制限無し。
ライセンス購入

https://vidvox.net/buy

• 1ライセンス $349
• グループライセンス $314.1 / person
• 時々セールをしている。Black Friday, Cyber Monday, etc.

$249で購入
OFJP #studygroup meetup 2015 Fall
ISFの楽しいところ
• パラメーターを弄れて遊べる
• デバッグがしやすい
• VDMX のエフェクトやジェネレータは ISF で書かれているものも多
いので実装を学べる
• GLSL Sandbox や Shadertoy のコードをインポートして遊べる
• 作った ISF を VDMX に入れて VJ 素材として遊べる
• ギャラリーサイト(http://www.interactiveshaderformat.com/)
で公開できる
5
OFJP #studygroup meetup 2015 Fall
ISFツールとサンプル素材ダウンロード
6
ISF 専用エディターとサンプルファイル。
• ISF Editor v2.3

http://vidvox.net/rays_oddsnends/ISF_Editor_2.3.zip
• ISF Test/Tutorial Filters

http://vidvox.net/rays_oddsnends/ISF%20tests+tutorials.zip
• Sample ISF image filters

http://vidvox.net/rays_oddsnends/ISF%20files.zip
• Movecraft » The Book of Shaders ‒ ISF/VDMX translation

http://www.movecraft.com/the-book-of-shaders-ifsvdmx-
translation/
OFJP #studygroup meetup 2015 Fall
ISFの中身はこんな感じ
7
/*{
"DESCRIPTION": "TEST",
"CREDIT": "chimanaco",
"CATEGORIES": [
"GRAPHIC"
],
"INPUTS": [
{
"NAME": "RedInput",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0.0,
"MAX": 1.0
}
]
}*/
void main() {
vec4 inputPixelColor = vec4(RedInput, 1.0, 1.0, 1.0);
gl_FragColor = inputPixelColor;
}
2つのパーツに分かれていて、上は INPUTS などの情報が入った json、
下は Fragment Shader になっている。ファイル名は ○○.fs にする。
OFJP #studygroup meetup 2015 Fall
ISFの中身はこんな感じ2
8
ISF Editor に表示されるのは Fragment Shader だけだが、Vertex
Shader を使っているものもある。後者がない場合は、デフォルトの
Vertex Shader が自動的に設定される。
void main()
{
// make sure to call this from your ISF based vertex shader
vv_vertShaderInit();
}
OFJP #studygroup meetup 2015 Fall
ISF独自のタグ
9
• PERSISTENT_BUFFERS, PASSES … マルチレンダーパス用
• IMPORTED … 画像読み込み用。画像は同一階層に配置すること。
"IMPORTED" : [
{
"NAME" : "img",
"PATH" : "tex.png"
}
]
OFJP #studygroup meetup 2015 Fall
ISF自動で宣言される変数
10
• json で定義した INPUTS
• PASSINDEX … 読み込むレンダーパスのインデックス
• RENDERSIZE … 解像度(レンダーパスで指定されているサイズ)
• vv_FragNormCoord …左下を[0.0, 0.0],右上を[1.0,1.0]と正規化
• TIME … 読み込まれてからの時間
vec4 pixelColor = IMG_PIXEL(image imageName, vec2 pixelCoord);
vec4 pixelColor = IMG_NORM_PIXEL(image imageName, vec2 normalizedPixelCoord);
ISF独自のFunction
• IMG_PIXEL, IMG_NORM_PIXEL など
OFJP #studygroup meetup 2015 Fall
ISF Editorを動かしてみる
11
• VDMX がインストールされている場合は、Load System ISFs ボタ
ンで VDMX 用のファイルが読み込まれる。

これらのファイルは「/Library/Graphics/ISF」にある。
• サンプルの ISF ファイルをドラッグ&ドロップ。
• サンプルの ISF ファイル群を格納したフォルダをドラッグ&ドロップ。


⇐ドラッグ&ドロップ先
OFJP #studygroup meetup 2015 Fall
ISFファイルを作ってみる
12
• File -> new ISF File
• よさげなやつをコピーして改良。
OFJP #studygroup meetup 2015 Fall
素敵なShaderをパクるインポートする
13
• GLSL Sandbox

File -> Import from GLSL Sandbox

参考:http://glslsandbox.com/e#26309.4

• ShaderToy

File -> Import from Shadertoy

参考:https://www.shadertoy.com/view/ldfGWn

動画、音、インプットはうまくいかないっぽい?
自分で作ったりインポートしたファイルは「/Users/****/Library/
Graphics/ISF」に入る。
OFJP #studygroup meetup 2015 Fall
インポート時に自動で変換されるもの
14
GLSL Sandbox Shadertoy ISF
resolution iResolution RENDERSIZE
time iGlobalTime TIME
mouse iMouse point2Dとして変換
texture2D() texture2D() IMG_NORM_PIXEL()
画像やテクスチャはこんな感じで変換される。
// ShaderToy
texture2D( iChannel0, (floor(uv)+0.5)/256.0, -100.0 )

// ISF
IMG_NORM_PIXEL(iChannel0,mod((floor(uv)+0.5)/256.0,1.0),-100.0)
OFJP #studygroup meetup 2015 Fall
作ったISFをVDMXで使う
15
• エフェクトの場合

Layer FX -> Load Asset
• 単体ジェネレータの場合

Media Bin へ
画像持ってこれないっぽい?
Load Asset
Media Bin
OFJP #studygroup meetup 2015 Fall
openFrameworksでISFを使う
16
satoruhiga/ofxISF
https://github.com/satoruhiga/ofxISF
oF 0.9.0 でサンプルがビルドできなかったので何とか動かしたい。
#hell_yeah_crash で会いましょう。
OFJP #studygroup meetup 2015 Fall
参考ページ
お話した内容が記載されているページです。
• Using the ISF Editor To Create GLSL Generators and FX ̶
VDMX - MAC VJ SOFTWARE

http://vdmx.vidvox.net/tutorials/using-the-isf-editor
• Introducing ISF Video Generators and FX ̶ VDMX - MAC VJ
SOFTWARE

http://vdmx.vidvox.net/blog/isf
• Interactive Shader Format

http://www.interactiveshaderformat.com/spec
17
OFJP #studygroup meetup 2015 Fall
ありがとうございました!
18
Twitter: @chimanaco
Facebook: Yasushi Harada

Weitere ähnliche Inhalte

Was ist angesagt?

βάζω σε αλφαβητική σειρά, κανόνες και ασκήσεις
βάζω σε αλφαβητική σειρά, κανόνες και ασκήσειςβάζω σε αλφαβητική σειρά, κανόνες και ασκήσεις
βάζω σε αλφαβητική σειρά, κανόνες και ασκήσεις
Ioanna Chats
 
αντίο θάλασσα (1)
αντίο θάλασσα (1)αντίο θάλασσα (1)
αντίο θάλασσα (1)
Nansy Tzg
 
Web ベースのカジュアルゲーム「block pong」の実装とビジネス
Web ベースのカジュアルゲーム「block pong」の実装とビジネスWeb ベースのカジュアルゲーム「block pong」の実装とビジネス
Web ベースのカジュアルゲーム「block pong」の実装とビジネス
t-kihira
 

Was ist angesagt? (20)

πού είναι ο άρης (7),να , ενα σελ. 18
πού είναι ο άρης (7),να , ενα σελ. 18πού είναι ο άρης (7),να , ενα σελ. 18
πού είναι ο άρης (7),να , ενα σελ. 18
 
τοστακι στη 2η ενότητα
τοστακι στη 2η ενότητατοστακι στη 2η ενότητα
τοστακι στη 2η ενότητα
 
Α΄ Δημοτικού Μαθηματικά Γ΄ τεύχος .pdf
Α΄ Δημοτικού Μαθηματικά Γ΄ τεύχος .pdfΑ΄ Δημοτικού Μαθηματικά Γ΄ τεύχος .pdf
Α΄ Δημοτικού Μαθηματικά Γ΄ τεύχος .pdf
 
虫垂炎をさがせ!
虫垂炎をさがせ!虫垂炎をさがせ!
虫垂炎をさがせ!
 
Πού είναι ο Άρης; (1)
Πού είναι ο Άρης; (1)Πού είναι ο Άρης; (1)
Πού είναι ο Άρης; (1)
 
βάζω σε αλφαβητική σειρά, κανόνες και ασκήσεις
βάζω σε αλφαβητική σειρά, κανόνες και ασκήσειςβάζω σε αλφαβητική σειρά, κανόνες και ασκήσεις
βάζω σε αλφαβητική σειρά, κανόνες και ασκήσεις
 
Deflate
DeflateDeflate
Deflate
 
όλοι στον κήπο 2
όλοι στον κήπο 2όλοι στον κήπο 2
όλοι στον κήπο 2
 
Nazoki
NazokiNazoki
Nazoki
 
Λέξεις μα Αι-αι
Λέξεις μα Αι-αιΛέξεις μα Αι-αι
Λέξεις μα Αι-αι
 
εποπτικο υλικο για το κεφ.6
εποπτικο υλικο για το κεφ.6εποπτικο υλικο για το κεφ.6
εποπτικο υλικο για το κεφ.6
 
αντίο θάλασσα (1)
αντίο θάλασσα (1)αντίο θάλασσα (1)
αντίο θάλασσα (1)
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
επαναλητικές ασκήσεις στη 2η ενότητα ως το ο
επαναλητικές ασκήσεις στη 2η ενότητα ως το οεπαναλητικές ασκήσεις στη 2η ενότητα ως το ο
επαναλητικές ασκήσεις στη 2η ενότητα ως το ο
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
 
Πώς να ζωγραφίσετε την ελληνική σημαία
Πώς να ζωγραφίσετε την ελληνική σημαίαΠώς να ζωγραφίσετε την ελληνική σημαία
Πώς να ζωγραφίσετε την ελληνική σημαία
 
νυχτώνει 2
νυχτώνει 2νυχτώνει 2
νυχτώνει 2
 
Web ベースのカジュアルゲーム「block pong」の実装とビジネス
Web ベースのカジュアルゲーム「block pong」の実装とビジネスWeb ベースのカジュアルゲーム「block pong」の実装とビジネス
Web ベースのカジュアルゲーム「block pong」の実装とビジネス
 
όλοι στον κήπο
όλοι στον κήποόλοι στον κήπο
όλοι στον κήπο
 
ένα ζιζανιο στη ζύμη 2
ένα ζιζανιο στη ζύμη 2ένα ζιζανιο στη ζύμη 2
ένα ζιζανιο στη ζύμη 2
 

Ähnlich wie ISFで遊ぼう!

Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
Makoto Kato
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
ytanno
 

Ähnlich wie ISFで遊ぼう! (20)

動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
 
Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so on
 
メトロスタイルアプリ開発 最初の一歩
メトロスタイルアプリ開発最初の一歩メトロスタイルアプリ開発最初の一歩
メトロスタイルアプリ開発 最初の一歩
 
AndroidでDIxAOP
AndroidでDIxAOPAndroidでDIxAOP
AndroidでDIxAOP
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
スマホにおけるWebGL入門
スマホにおけるWebGL入門スマホにおけるWebGL入門
スマホにおけるWebGL入門
 
Pronama 0707 wf4
Pronama 0707 wf4Pronama 0707 wf4
Pronama 0707 wf4
 
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
 
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
 

ISFで遊ぼう!

  • 1. ISFで遊ぼう!
 OFJP #studygroup meetup 2015 Fall 2015 Dec. 13th 原田康
  • 2. OFJP #studygroup meetup 2015 Fall こんにちは • バスキュール所属 • 最近のお仕事では WebGL, Android アプリなど • oF 歴1年半 • Shader を書くのが好き • メインの活動はトイレのサインを集めること
 https://www.facebook.com/groups/washroom.of.the.day/
 https://www.instagram.com/washroomoftheday/ 2
  • 3. OFJP #studygroup meetup 2015 Fall ISF Interactive Shader Format の略。GLSL をベースにした VDMX など で使えるエフェクトやジェネレーター。Web でも公開されている。 3
  • 4. OFJP #studygroup meetup 2015 Fall VDMX MacOS 用 VJ アプリケーション。 4 デモ版ダウンロード
 http://vidvox.net/download/vdmx_demo
 保存ができないこと以外は機能制限無し。 ライセンス購入
 https://vidvox.net/buy
 • 1ライセンス $349 • グループライセンス $314.1 / person • 時々セールをしている。Black Friday, Cyber Monday, etc.
 $249で購入
  • 5. OFJP #studygroup meetup 2015 Fall ISFの楽しいところ • パラメーターを弄れて遊べる • デバッグがしやすい • VDMX のエフェクトやジェネレータは ISF で書かれているものも多 いので実装を学べる • GLSL Sandbox や Shadertoy のコードをインポートして遊べる • 作った ISF を VDMX に入れて VJ 素材として遊べる • ギャラリーサイト(http://www.interactiveshaderformat.com/) で公開できる 5
  • 6. OFJP #studygroup meetup 2015 Fall ISFツールとサンプル素材ダウンロード 6 ISF 専用エディターとサンプルファイル。 • ISF Editor v2.3
 http://vidvox.net/rays_oddsnends/ISF_Editor_2.3.zip • ISF Test/Tutorial Filters
 http://vidvox.net/rays_oddsnends/ISF%20tests+tutorials.zip • Sample ISF image filters
 http://vidvox.net/rays_oddsnends/ISF%20files.zip • Movecraft » The Book of Shaders ‒ ISF/VDMX translation
 http://www.movecraft.com/the-book-of-shaders-ifsvdmx- translation/
  • 7. OFJP #studygroup meetup 2015 Fall ISFの中身はこんな感じ 7 /*{ "DESCRIPTION": "TEST", "CREDIT": "chimanaco", "CATEGORIES": [ "GRAPHIC" ], "INPUTS": [ { "NAME": "RedInput", "TYPE": "float", "DEFAULT": 0.5, "MIN": 0.0, "MAX": 1.0 } ] }*/ void main() { vec4 inputPixelColor = vec4(RedInput, 1.0, 1.0, 1.0); gl_FragColor = inputPixelColor; } 2つのパーツに分かれていて、上は INPUTS などの情報が入った json、 下は Fragment Shader になっている。ファイル名は ○○.fs にする。
  • 8. OFJP #studygroup meetup 2015 Fall ISFの中身はこんな感じ2 8 ISF Editor に表示されるのは Fragment Shader だけだが、Vertex Shader を使っているものもある。後者がない場合は、デフォルトの Vertex Shader が自動的に設定される。 void main() { // make sure to call this from your ISF based vertex shader vv_vertShaderInit(); }
  • 9. OFJP #studygroup meetup 2015 Fall ISF独自のタグ 9 • PERSISTENT_BUFFERS, PASSES … マルチレンダーパス用 • IMPORTED … 画像読み込み用。画像は同一階層に配置すること。 "IMPORTED" : [ { "NAME" : "img", "PATH" : "tex.png" } ]
  • 10. OFJP #studygroup meetup 2015 Fall ISF自動で宣言される変数 10 • json で定義した INPUTS • PASSINDEX … 読み込むレンダーパスのインデックス • RENDERSIZE … 解像度(レンダーパスで指定されているサイズ) • vv_FragNormCoord …左下を[0.0, 0.0],右上を[1.0,1.0]と正規化 • TIME … 読み込まれてからの時間 vec4 pixelColor = IMG_PIXEL(image imageName, vec2 pixelCoord); vec4 pixelColor = IMG_NORM_PIXEL(image imageName, vec2 normalizedPixelCoord); ISF独自のFunction • IMG_PIXEL, IMG_NORM_PIXEL など
  • 11. OFJP #studygroup meetup 2015 Fall ISF Editorを動かしてみる 11 • VDMX がインストールされている場合は、Load System ISFs ボタ ンで VDMX 用のファイルが読み込まれる。
 これらのファイルは「/Library/Graphics/ISF」にある。 • サンプルの ISF ファイルをドラッグ&ドロップ。 • サンプルの ISF ファイル群を格納したフォルダをドラッグ&ドロップ。 
 ⇐ドラッグ&ドロップ先
  • 12. OFJP #studygroup meetup 2015 Fall ISFファイルを作ってみる 12 • File -> new ISF File • よさげなやつをコピーして改良。
  • 13. OFJP #studygroup meetup 2015 Fall 素敵なShaderをパクるインポートする 13 • GLSL Sandbox
 File -> Import from GLSL Sandbox
 参考:http://glslsandbox.com/e#26309.4
 • ShaderToy
 File -> Import from Shadertoy
 参考:https://www.shadertoy.com/view/ldfGWn
 動画、音、インプットはうまくいかないっぽい? 自分で作ったりインポートしたファイルは「/Users/****/Library/ Graphics/ISF」に入る。
  • 14. OFJP #studygroup meetup 2015 Fall インポート時に自動で変換されるもの 14 GLSL Sandbox Shadertoy ISF resolution iResolution RENDERSIZE time iGlobalTime TIME mouse iMouse point2Dとして変換 texture2D() texture2D() IMG_NORM_PIXEL() 画像やテクスチャはこんな感じで変換される。 // ShaderToy texture2D( iChannel0, (floor(uv)+0.5)/256.0, -100.0 )
 // ISF IMG_NORM_PIXEL(iChannel0,mod((floor(uv)+0.5)/256.0,1.0),-100.0)
  • 15. OFJP #studygroup meetup 2015 Fall 作ったISFをVDMXで使う 15 • エフェクトの場合
 Layer FX -> Load Asset • 単体ジェネレータの場合
 Media Bin へ 画像持ってこれないっぽい? Load Asset Media Bin
  • 16. OFJP #studygroup meetup 2015 Fall openFrameworksでISFを使う 16 satoruhiga/ofxISF https://github.com/satoruhiga/ofxISF oF 0.9.0 でサンプルがビルドできなかったので何とか動かしたい。 #hell_yeah_crash で会いましょう。
  • 17. OFJP #studygroup meetup 2015 Fall 参考ページ お話した内容が記載されているページです。 • Using the ISF Editor To Create GLSL Generators and FX ̶ VDMX - MAC VJ SOFTWARE
 http://vdmx.vidvox.net/tutorials/using-the-isf-editor • Introducing ISF Video Generators and FX ̶ VDMX - MAC VJ SOFTWARE
 http://vdmx.vidvox.net/blog/isf • Interactive Shader Format
 http://www.interactiveshaderformat.com/spec 17
  • 18. OFJP #studygroup meetup 2015 Fall ありがとうございました! 18 Twitter: @chimanaco Facebook: Yasushi Harada