2019年5月に作ったシェーダーを紹介する

f:id:kaneta1011:20190522175714p:plain
サムネ用

はじめに

毎月やっている月毎に制作したシェーダーの紹介第4回目です。

腰を据えてがっつりシェーダーを書いていた前月までと異なって、今月は1シェーダーにつき60分以内で作ったものばかりになりました。

このように短時間でシェーダーを作成するのは、シェーダーライブコーディングというジャンルで、それに挑戦しました。

4/25

世界最大規模のデモパーティであるRevision 2019が4/19 ~ 22に開催されて、そこで行われたシェーダーライブコーディングに影響されて、現時点の実力でどんなものを30分で作れるか挑戦してみたものです。

競技中は事前に用意したコードを持ち込んだり、ググったりできないため、前月までのシェーダーを作っていた時のようにスムーズにやりたいことを実現できませんでした。

このシェーダーを作るうえで以下の詰まりポイントがありました。

  • カメラ行列の計算(crossの順番等..)
  • カメラ行列とレイの掛け順
  • IFSするたびにスケールを変えようと思ってできなかった
  • 法線計算しようとしたけどできなかった
  • 全部mainに書くんじゃなくて距離関数は分けた方が整理しやすい...(IFSするあたりで結構混乱した)

4/26

その1

実家に帰る新幹線内で30分で作ったものです。

前回の反省のうちカメラに関する処理と、法線に関する処理を習得してから取り掛かりました。そのため時間にもある程度余裕ができたので、マテリアル分けに挑戦しました。

実際に動くものはこちらから見れます

https://glslfan.com/?channel=-LdJnYWiIXubgZJAMZJq&viewer=true

その2

実家に帰る新幹線内で30分で作ったものその2です。

glslfanで作っているときに@gam0022氏が見に来てちょっかいを入れられながら作っていました。(意見をもらいながら作れるのはライブコーディングならではです!)

今回はIFSのイテレーションごとにマテリアルを変えるものに挑戦してました。

4/27

実家で30分かけて作ったものです。

相変わらずIFSでめちゃくちゃな形状を作成しています。

先月も利用した、常に視線の反対側にライトを配置するものでライティングをしてみました。

このような角ばった形状では鉱石のような見た目になって綺麗です。

(RevisionのShader ShowDownでも同じようなライティングをしているものがあったので影響されました)

5/4

f:id:kaneta1011:20190522175745p:plain 実家から東京へ帰る新幹線でおそらく60分ぐらいで作りました。

今まで着手開始から行き当たりばったりの、その場の思い付きでシェーダーを書いていましたが、この辺りから事前にどういったルックにしようか考えてから作るようになりました。また30分で完成させるのは、まだ自分にとってハードルが高いと感じたので制限時間を60分にしました。

今回はビートを刻むポストエフェクト(今回は色収差もどき)と実家で習得したPolar Foldingと鏡面反射を絶対に使用すると決めていました。

くるくる回っている球が鏡面反射をしているのですが、かなりわかりずらいですね...

実際に動くものはこちらから見れます

5/5

Twitterで見かけたイケてるシェーダーに似たものを60分で作りました。

元ネタはこちらです

無限に見えるトンネルは、実はトーラスの内部をぐるぐる回っているだけです。

トーラスのUV計算に時間がかかった上に、もう一度作れと言われてもとっさに出てこないので復習しておきます...

またこのシェーダーは今まで書いたシェーダーの中で一番短いものでした!

f:id:kaneta1011:20190522175755p:plain

985文字でこのルック!

5/7

f:id:kaneta1011:20190522175737p:plain

就業時間後の帰る前の15分で作りました。

Shader ShowDownで登場したシェーダーに若干インスピレーションを貰っています。

Modで増やした形状にオフセットをつけたかったんですが、疑似乱数がうまくいかずに時間切れになってしまいました...

実際に動くものはこちらから見れます

5/15

しばらくゲームにはまっており、なかなかシェーダーを書けなかったので、ボリュームライトを絶対に使うぞという気持ちでリハビリも兼ねて60分制限で作りました。

形状を予め決めていなかったので、ボリュームライトがあまり目立たないシェーダーになってしまいました。

5/17

前回のリベンジで、今度はどんな形状にするか決めてから、今月二度目の実家に帰る新幹線内で作りました。こちらも60分です。

ソフトシャドウだけ自力で書けなかったのでカンニングをしてしまいましたが、ステージとボリュームライトの雰囲気がマッチしていてそれなりのルックになったと思います。

また、今月意図的に学んだテクニックをたくさん使ったので集大成のようなものになりました。

  • 法線とポイントライト
  • 距離関数の引き延ばし
  • Polar Folding
  • ボリュームライト

反省点として単色のシェーダーを作ってしまいがちなので、もっといろいろな作品を見て色使いを真似したいなと考えています。

さいごに

今月はライブコーディング月間でした。

今後の課題として以下のものがあるので、来月はこれらを消化していきたいです。

  • ノイズ系の習得
  • SmoothMin等の特殊な距離感数の合成
  • ライブコーディングにおけるマテリアル分け手法の確立
    • 未だに右往左往している..
  • ライティングの習得
    • AO
    • ソフトシャドウ
    • スペキュラ反射
  • ポストエフェクト

来月も、もし何か作ったら紹介します。