さやちゃんぐbotブログ

シェーダーで遊んだりするブログです。

忙しい人のためのシェーダーアドベントカレンダー2019まとめ。

はいどーもー。さやちゃんぐbotです。
この記事はシェーダーアドベントカレンダー25日目の記事として書かれています。

qiita.com

24日目はKa-punnさんによる「SubstanceDesignerとUE4を使ってTV Pixelをシェーダーで再現する記事を書こうと思います」でした。

kapunn-vfx.hatenablog.com

 

アドベントカレンダーを作った時はどれくらい記事を書く人が集まってくれるかたいへん不安でしたが、なんとか完走できました!参戦者のみなさま、本当にありがとうございます。

最終日の今日は、シェーダーアドベントカレンダー2019のすべての記事を振り返ったサマリをまとめてみたいと思います。忙しい人に最適!

さっそくやって参りましょう!

1日目
さやちゃんぐbotによる「他の人が描いたレイマーチングを魔改造する。(カメラ編)」

レイマーチングのカメラ話です。

cross productを使えばレイマーチングでとりあえずカメラを扱えるようになりますが、現実世界での撮影技術から構図やカメラの動きを参考にすると世界が広がります!

 

2日目
mokoさんによる「UE4 格子付きモザイクマテリアル | Mosaic Material with Checker Pattern」

UE4でのタイルシェーダー話です。

マテリアルノードを繋いでモザイク状にするやり方がたいへんやさしく解説されています!

 

3日目
vakさんによる「UE4によるunlit芸のすすめ」

UE4でのマテリアルノード話。

光源無しでカメラからのみシェーディングを実装する実装例のひとつです。

 

4日目
Gazさんによる「シーケンス(シーンの制御) -- GLSL --」

シェーダーにおいて時間の経過を扱う話。

シェーダーにストーリーをつけるには時間で分岐するという考え方になりますが、modやstepの活用、時間へのID割り当てなどのやり方が紹介されています。

 

5日目
さやちゃんぐbotによる「KodeLifeでレイマーチングを動かす。 」

GLSLでフラグメントシェーダーを描くにはKodeLifeはイチオシです!頂点シェーダーやテッセレーションも使えて(珍しい!)、オーディオ入力とかもあって楽しいです。

 

6日目
さやちゃんぐbotによる「stepであそぼう!~stepはシェーダーで一番楽しい関数。たぶん。~ 」

ゼロワンによりわけるstep関数は使うだけで楽しいです。if文を書き換える用途で使ってもいいし、いろいろな論理をstepで書き分けるのは頭の体操にオススメです。

 

7日目
土屋つかささんによる「#unity 疑似環境マップでARでモデルを風景に馴染ませたい」

ARにオブジェクト表示する時には、ライティングとシェーディングに良く気を使ってあげないと自然さを実現できないですよね。このUnityでARを扱う興味深い実験は目を通しておくと良いでしょう。

 

8日目
たなかゆう先生による「高さでグラデーションをかけるシェーダーをUnityで作ってみた 」

高さをグラデーションに利用するという、線形補間の学びにぴったりな記事です。

私がシェーダー言語についてコメントをつけたので途中からシェーダー言語談義になっています。

シェーダーを始めるのに、今からCg言語をやるのはあまり得策ではないでしょう!ただ、UnityのC#でILが使われるように、もしシェーダーでも中間言語のSPIR-Vが主流になり、そしていろいろな言語からSPIR-Vを出力できるようになれば、あらゆる言語でシェーダーを描く未来がひょっとしたら来るかもしれない…みたいな未来予想をするのも楽しいですよね。

 

9日目
さやちゃんぐbotによる「他の人が描いたレイマーチングを魔改造する。(ライティング編) 」

レイマーチングのライティング話です。

三点照明といった現実世界でのライティングの話をしつつ、フォグ、SSS、AOといったものをレイマーチングで利用する方法を紹介しています。

 

10日目
vakさんによる「[UE4]徐々に石化するシェーダーを作る+5色マスクとかおまけ」

石化シェーダーという性癖全開な内容です!

シェーダー言語はあらゆるプログラミング言語の中で最も性癖があらわれる言語のひとつなので、みなさまも性癖をシェーダーにぶつけてみてはいかがでしょうか。

 

11日目
Gazさんによる「2Dを3Dに展開する距離関数の作り方」

2Dでの距離を取って、それとZ方向の距離をさらに取ると、奥に押し出して3D形状が作れるという話です。

最初はピンと来ないかもしれませんが、レイマーチングで描いてみると面白い形状が作れます。

 

12日目
hachaさんによる「GLSLのコーディング環境はKodeLifeで決まり!」

KodeLifeの紹介。

マルチパス、オーディオやMIDI入力、コード補間といった機能を紹介しています。

 

13日目
MachiaWorxさんによる「シェーダで音楽を作るmusic shaderの紹介」

Sound Shaderの仕組みを紹介しています。

VBO経由で音の波形をGPUで計算するのですね。

 

14日目
7CITさんによる「フラグメントシェーダーでルーン文字のようなものをプロシージャルに生成する」

fBMでエルミート補間しないで謎の文字を作るという手法です。

ちょっとサンスクリットっぽいです。

 

15日目
さやちゃんぐbotによる「80年代ゲーセン筐体っぽいレトロ調の画面をUnityシェーダーで作る。」

テクスチャをシェーダーで加工してレトロ調の画面に仕立て上げる話。

バレルディストーション、走査線、カラーグレーディングといったポストエフェクトを加えるやり方を説明しています。

 

16日目
ttk1さんによる「フラグメントシェーダでフラクタル図形を描画する」

シェルピンスキーのギャスケットとドラゴンカーブをフラグメントシェーダーで描く話。

フラクタルのロジックをたどって、シェーダーに落とし込む興味深い過程が書かれています。

 

17日目
さやちゃんぐbotによる「ノイズ一覧。 」

世の中に存在するノイズの名前を紹介する記事。

テクスチャ用途のノイズアルゴリズムがずっと研究され続けていて、今でも新しいノイズが発表されていることがわかります。

 

18日目
noribenさんによる「数値を数字として表示するシェーダーを作ったおはなし[Unity]」

VRChat向けに数字を表示するシェーダーを組み立てる話。

VRChatは実装の手段が制限されたプラットフォームですが、その上でいかに数値を数字として表示するかという考え方の過程が説明されたエントリです。

 

19日目

ukon先輩による「バーテックスシェーダーだけで映えるために」

WebGL上での頂点シェーダー芸。

表現における「しなやかさ」の重要さを説く良記事です。

 

20日
northprintさんによる「GLSLを毎日書く」

毎日シェーダーコーディングを続けるということを書いた記事。

まさに継続することが力であることを示す内容です。


21日目
hisaitamiさんによる「Vedaのサンプルを改造してTikTo_のロゴみたいな色交差」

VEDAのサンプルを組み合わせて、TikTo●ロゴのあのRGBシフトのような表現をする話。

 

22日目
guilty_vrchatさんによる「VRChatで現実と同じ月齢の月を実装する」

外部サーバから月齢の情報をテクスチャ経由で取得して、VRChatで月を表現するシェーダーの話。

ガンマ補正の影響を避けるために、1ピクセルを3ビットの情報として扱うところが興味深いです。

 

23日目
7CITさんによる「マッハで学ぶ VRChat Shader LV5 習得 までのLV別 技術情報まとめ」

ノイズやジオメトリシェーダーといった用語をちりばめた、シェーダー雑学のエントリです。

 

24日目
Ka-punnさんによる「液晶のピクセルをシェーダーで再現する」

テクスチャをタイル状に処理して、各RGBチャンネルごとに描いて液晶風に仕立てるUE4マテリアルノードの組み方を紹介する記事。面白いポストエフェクトになっています。
アドベントカレンダー2日目の記事を参照していて、アドベントカレンダー内でコラボした初の記事です。

 

以上、シェーダーアドベントカレンダー2019のジャンル別件数集計はこんな結果となりました。

シェーダー全般(GLSL/HLSL/WebGL):8
UE4:4
Unity:3
レイマーチング:3
KodeLife:2
VRChat:2
GLSLサウンド:1
VEDA:1

 

シェーダーをテーマに、これだけ面白い記事が大量に集まったってのはたいへんエキサイティングでした。改めて時間を割いて記事を書いてくれたみなさま、ありがとうございます。

このアドベントカレンダーの記事に目を通すと、さまざまな知見が得られることでしょう。

それでは、みなさまに良きシェーダーライフを!