SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
楽しい
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はここに適用される。	
用意されている入力は	
今後増えるかな…

Más contenido relacionado

La actualidad más candente

RenderTextureの正しいα値は?
RenderTextureの正しいα値は?RenderTextureの正しいα値は?
RenderTextureの正しいα値は?KLab Inc. / Tech
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!com044
 
衝突判定
衝突判定衝突判定
衝突判定Moto Yan
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】Youichiro Miyake
 
Rosbag search system
Rosbag search systemRosbag search system
Rosbag search systemyusuke shibui
 
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみようUnity Technologies Japan K.K.
 
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイントそれを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイントMakoto Goto
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてcom044
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
Substance Designer の使い方事例
Substance Designer の使い方事例Substance Designer の使い方事例
Substance Designer の使い方事例poko ponmaru
 
GLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめGLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめYoichi Hirata
 
つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとはGearsRenard
 
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~UnityTechnologiesJapan002
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!Unity Technologies Japan K.K.
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込むYoshiki Hayama
 
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unity Technologies Japan K.K.
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチYoshiki Hayama
 

La actualidad más candente (20)

RenderTextureの正しいα値は?
RenderTextureの正しいα値は?RenderTextureの正しいα値は?
RenderTextureの正しいα値は?
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!
 
衝突判定
衝突判定衝突判定
衝突判定
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
 
UE4とUnrealC++について
UE4とUnrealC++についてUE4とUnrealC++について
UE4とUnrealC++について
 
Rosbag search system
Rosbag search systemRosbag search system
Rosbag search system
 
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
 
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイントそれを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
Substance Designer の使い方事例
Substance Designer の使い方事例Substance Designer の使い方事例
Substance Designer の使い方事例
 
GLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめGLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめ
 
つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとは
 
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
 
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
 

Similar a 楽しいShaderToy

Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)Noriaki UCHIYAMA
 
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 ToolMasahiro Satake
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application祐樹 夏目
 
これから始めるssl対策
これから始めるssl対策これから始めるssl対策
これから始めるssl対策Shohei Kobayashi
 

Similar a 楽しい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