SlideShare a Scribd company logo
楽しい
ShaderToy	
 
@gyabo
メガデモ勉強会 2013 Summer
目的	
 
•  ShaderToyというサイトをご紹介します
•  OpenGL (GLSL )をある程度知っていると具合がいいです
•  こんな方におすすめ
o  FragmentShaderのフレームワークで手軽なのが無くて困ってる方
o  動画処理時、思いついたShaderを試してみたいけど環境構築だるいなど
o  etc
[私]
@gyabo <Masaki Sasaki>
本業は組み込み屋さんです
もくじ	
 
•  ShaderToyとは
•  作品をみてみる
•  作ってみる
•  アカウント登録
•  作品を投稿してみる
•  ShaderToyのここがすごい
•  ShaderToyのここがこわい
•  ShaderToyの今
ShaderToyとは	
 
h*ps://www.shadertoy.com/img/logomail.png
ShaderToyとは	
 
ブラウザ(WebGL)でFragmentShaderを書いたり
他の人が作成した美しいShaderをコード付きで
見る事ができるソーシャルなサイト!
www.shadertoy.com	
 
	
 
※
Beautypi(beautypi.com)が運営している
動作環境	
 
ブラウザ + ゲームがある程度できるグラボが載ってるPCならOK
[ブラウザ]
●Chrome 23 (オススメです)
●FireFox 17
●InternetExplorer(IEWebGLのインストール必要)
●Safari 6
https://www.shadertoy.com/aboutより抜粋
サイト開くとこんな感じ
作品をみてみる	
 
h*ps://www.shadertoy.com/img/logomail.png
その1 : 面白そうなのを適当にクリック
見た目面白そう、ヤバそうなのを適当に選んでみる
画面の説明
ビュー数、イイネ数、コメント数	
投稿した人の名前など
ShaderCode	
(GLSL)
スゴイ級の方々のコメント!
その2: これまでに投稿されたShaderを見てみる
Browseをクリック!
すごいShaderがいっぱい表示される!
これは人気順(Popular),  ほかにも最近の投稿(Newest),  お気に入り数(Love)でソートしてみることができます
作ってみる	
 
h*ps://www.shadertoy.com/img/logomail.png
お手軽に試したい場合
New  Shaderをクリック!
New Shaderひらいた画面
画面の使い方
Shaderが書ける場所	
すぐ書ける!
リソースチャンネル
レンダリング結果と	
経過時間とFPS
リソースチャンネルをクリックすると
プリセットが選べる(Texture, 音楽、動画、Webcam…)
選ぶと	
そのチャンネルに	
リソースが入る
用意してくれているUniform変数がいくつかあります
使い方はShaderを書いたらコンパイルの繰り返し
ばしばしShaderを書いたら	
ココをクリック!	
※Alt  +  EnterでもOK
表示される!たのしい!
リソース変えて調子をみたり	
音楽にあわせて動かしたりなどで	
色々具合を見る事ができます
画面はただの板ポリゴンです
立体的な画像を出すには	
Raytrace,  Raymarchng,  FakeEffect…	
など、ある程度定番の工夫が必要です。	
	
	
※	
ほかの人のShaderをまねして改造するのが上達する近道!	
上はただテクスチャを	
表示するだけのGLSLCode
アカウント登録	
 
h*ps://www.shadertoy.com/img/logomail.png
Sign In をクリックする!
Sign  Inをクリック!
アカウントを作成する
必要な情報を詰めて	
Sign  Upをクリック	
	
すると	
確認用メールが飛ぶ。	
	
チェックすれば	
登録完了。
一度登録したら で	
再びログインできる
サインインしたら、プロフィール画面を開いてみる
作ったShaderを見たり、管理する事ができます
公開中のShader
下書中のShader
プロフ絵
作品を投稿してみる	
 
h*ps://www.shadertoy.com/img/logomail.png
投稿するには同じようにNew Shader選んで編集
に作品名、関連タグ、	
コメントを書くのだが…
作品名などを埋めてSubmitすれば投稿できる
Publicが公開用の	
設定(どっちでも良い)
Draftは下書きなどに使用する。	
※一時保存でよく使う	
最初はDraftで様子を見てから	
Publicにして投稿するのがベスト
Publicで投稿すると、browser -> Newestに載る!
見てくれた方が感想をくれるかもしれません!
ShaderToyのここがすごい	
 
h*ps://www.shadertoy.com/img/logomail.png
作成したShaderに対してコメントがもらえる!
スゴイ方から	
コメントもらえちゃったりします
公式Twitterで具合の良いShaderが紹介される
掲載基準はよくわからない。	
単純にView数やらイイネ数かな…
非常にレベルが高いShaderが多い
アカウント登録している為か	
ほどよい緊張感の為か…
プリセットが豊富(GLSL SandBoxと大きく異なる)
このリソース制限で	
工夫してある	
Shaderが多い。	
	
つい最近WebCamまで	
サポートされた。
ShaderToyのここがこわい	
 
h*ps://www.shadertoy.com/img/logomail.png
投稿した作品に
不具合があるとメールが飛んでくる!
ざっくりとした意味	
「あなたが投稿したShaderはこちらでは変更しないけど	
きちんと動作するように変更して再投稿してほしい」
不具合とは?
  ShaderToyのガイドラインで以下は避けてと記載	
      ・NaNな計算
      ・ループ回数多すぎてコンパイル中にブラウザ上で
            タイムアウト発生したり
      ・30fps確保できていない?ものなど	
              (※環境に拠ると思う)	
	
最悪rejectされる(publicからdraftに強制的に戻る)	
	
※最近変なの投稿していないので、	
もしかしたら挙動変わってるかも
ガイドラインは?
警告のおかげか
クリックしても	
再生できない時	
割とかなしい	
作った方が懸命に直しているのか、動作しないShaderが	
殆ど無い。
h*p://glsl.heroku.com/
ShaderToyの今	
 
h*ps://www.shadertoy.com/img/logomail.png
Siggraph2013でLiveCodingするっぽい
まとめ
豊富なリソースが提供されているブラウザ環境での  お試しShaderを	
作る時などに重宝するし、なにより動いてるの投稿したりしてたのしい!
おわり  
ご清聴ありがとうございました!	
 
Question?
補足:遊ぶ為に知っておくといいこと	
 
FragmentShaderの書き方(これだけ)	
 	
 
h*p://my.safaribooksonline.com/book/web-­‐‑development/9781849691727/2dot-­‐‑rendering-­‐‑geometry/id286751012
Shaderはここに適用される。	
用意されている入力は	
今後増えるかな…

More Related Content

What's hot

つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとは
GearsRenard
 
先進的なルックデベロップメント
先進的なルックデベロップメント先進的なルックデベロップメント
先進的なルックデベロップメント
エピック・ゲームズ・ジャパン Epic Games Japan
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
 
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
KLab Inc. / Tech
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
 
アジャイルな見積りと計画づくり勉強会
アジャイルな見積りと計画づくり勉強会アジャイルな見積りと計画づくり勉強会
アジャイルな見積りと計画づくり勉強会
Arata Fujimura
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
 
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Takahiro KOGUCHI
 
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライドCEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
Toshiyasu Miyabe
 
『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~
『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~
『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~
KLab Inc. / Tech
 
three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方
jey en
 
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
 
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
Shunsuke Ishimoto
 
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
torisoup
 
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
Haruki Yano
 
Unityとシェーダで描く360度フラクタル
Unityとシェーダで描く360度フラクタルUnityとシェーダで描く360度フラクタル
Unityとシェーダで描く360度フラクタル
Hirotaka Nakayama
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
プロシージャル技法による背景の自動生成 『1,000の和室
プロシージャル技法による背景の自動生成 『1,000の和室プロシージャル技法による背景の自動生成 『1,000の和室
プロシージャル技法による背景の自動生成 『1,000の和室
エピック・ゲームズ・ジャパン Epic Games Japan
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Satoshi Kodaira
 

What's hot (20)

つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとは
 
先進的なルックデベロップメント
先進的なルックデベロップメント先進的なルックデベロップメント
先進的なルックデベロップメント
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
アジャイルな見積りと計画づくり勉強会
アジャイルな見積りと計画づくり勉強会アジャイルな見積りと計画づくり勉強会
アジャイルな見積りと計画づくり勉強会
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
 
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライドCEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
 
『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~
『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~
『ラブライブ!スクールアイドルフェスティバル ALL STARS』における開発事例 ~システムUIの管理についてご紹介~
 
three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方
 
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
 
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
 
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
 
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
 
Unityとシェーダで描く360度フラクタル
Unityとシェーダで描く360度フラクタルUnityとシェーダで描く360度フラクタル
Unityとシェーダで描く360度フラクタル
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
プロシージャル技法による背景の自動生成 『1,000の和室
プロシージャル技法による背景の自動生成 『1,000の和室プロシージャル技法による背景の自動生成 『1,000の和室
プロシージャル技法による背景の自動生成 『1,000の和室
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
 

Similar to 楽しいShaderToy

Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)
Noriaki UCHIYAMA
 
Grimoire.js + HoloLens
Grimoire.js + HoloLensGrimoire.js + HoloLens
Grimoire.js + HoloLens
Masaki Yamamoto
 
Shader読んで理解する会-基礎編
Shader読んで理解する会-基礎編Shader読んで理解する会-基礎編
Shader読んで理解する会-基礎編
GearsRenard
 
WebGLことはじめ
WebGLことはじめWebGLことはじめ
WebGLことはじめ
Kazuya Hiruma
 
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
小林 信行
 
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
小林 信行
 
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろうVisual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Masafumi Takahashi
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Masahiro Satake
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application
祐樹 夏目
 
これから始めるssl対策
これから始めるssl対策これから始めるssl対策
これから始めるssl対策
Shohei Kobayashi
 

Similar to 楽しいShaderToy (10)

Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)
 
Grimoire.js + HoloLens
Grimoire.js + HoloLensGrimoire.js + HoloLens
Grimoire.js + HoloLens
 
Shader読んで理解する会-基礎編
Shader読んで理解する会-基礎編Shader読んで理解する会-基礎編
Shader読んで理解する会-基礎編
 
WebGLことはじめ
WebGLことはじめWebGLことはじめ
WebGLことはじめ
 
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
 
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
 
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろうVisual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application
 
これから始めるssl対策
これから始めるssl対策これから始めるssl対策
これから始めるssl対策
 

楽しいShaderToy