Shader

【Unity】【シェーダ】光芒(グレア)のポストエフェクトを実装する

光芒とかスターと呼ばれるポストエフェクトを実装してみます。

【Unity】【シェーダ】ガウス関数を使ってブラーを掛ける

ガウス関数を用いてぼかし効果を加える方法を紹介します。

【Unity】【シェーダ】4種のアウトライン描画方法とその特徴

アウトラインの描画方法はいくつかのパターンがあります。 このブログでもいくつか紹介してきたので、この記事ではそれらの概要と特徴をまとめてみます。

【Unity】【シェーダ】より低負荷なエッジ抽出方法(4点サンプリング法)

以前ソーベルフィルタやプレヴィットフィルタによるエッジの抽出方法を紹介しました(関連の節からリンクしてあります)。 これらの方法はテクスチャサンプリング数が多い(8回)という欠点があります。 そこで、より低負荷なエッジ抽出方法を紹介します。

【Unity】【シェーダ】プレヴィットフィルタでエッジを抽出する

前回、ソーベルフィルタによるエッジ抽出方法を紹介しました。 light11.hatenadiary.com 今回はプレヴィットフィルタによるエッジ抽出方法を紹介します。

【Unity】【シェーダ】ソーベルフィルタでエッジを抽出する

テクスチャやレンダリング結果などからエッジを抽出するにはいくつかの方法があります。 ここではソーベルフィルタというフィルタをかけることで抽出する方法を紹介します。

【Unity】【シェーダ】なんとなく書きがちな#pragma target 3.0の意味

Unityでシェーダを書くとき、特定の機能を使う場合に次のような記述をすることがあるとおもいます。 #pragma target 3.0 これはShader Compilation Target Levelsというものです。 今回はこれについて調べてみます。

【Unity】ステンシルバッファをポストエフェクトで使う方法(と謎の挙動)

ポストエフェクトでステンシルバッファを使う方法です。 なんかいろいろと挙動(の原因)がわからないところがあるのでメモがてら。 結論だけ知りたい方は「結論」の節まで飛ばしてもらえればわかるようになってます。

【Unity】【シェーダ】オブジェクトの遮蔽されている部分をシルエット描画する(ステンシルバッファ)

あるオブジェクトの、ほかのオブジェクトと重なって隠れてしまっている部分を違う色で描画する方法です。 障害物に遮蔽されているときにシルエットを描画したい場合などに使えます。

【Unity】【シェーダ】カメラからの深度情報を用いてアウトラインを描画する

デプステクスチャを用いてアウトラインを描画する方法です。

【Unity】【シェーダ】カメラから見た深度を描画する

カメラから見た時の深度を描画する方法です。

【Unity】【シェーダ】ステンシルバッファでアウトラインを描画する

ステンシルバッファを使ってアウトラインを描画する方法を紹介します。

【Unity】【シェーダ】シャボン玉風シェーダ

下の記事からさらに派生してシャボン玉風シェーダを作ってみました。

【Unity】【シェーダ】構造色風シェーダを実装してみる

構造色レンダリングの記事を元に、構造色風のシェーダを作ってみました。

構造色レンダリングの要点をまとめてみる

構造色のレンダリング手法ってどんなものがあるのかと探していたところ、下記の論文を見つけました。 汎用的な構造色レンダリング手法の開発 とても勉強になりましたが、アカデミックな論文はなかなか理解に時間がかかってしまうので、要点をまとめてみます。…

【Unity】【シェーダ】Unityシェーダチートシート

自分用メモ。随時更新。

【Unity】アウトラインを描画する最も簡単な方法

スタンダードなアウトライン描画をやってみます。

【Unity】不透明キューの描画順が手前からじゃない件

Unityで不透明のオブジェクトを描画する際にはシェーダのQueueにGeometryを指定します。 このような不透明オブジェクトの描画は手前からされるものだと思ってましたが、そんなこともなさそうなのでメモです。

【Unity】ステンシルバッファ入門

Unityにおけるステンシルバッファの使い方についてまとめてみます。

【Unity】CommandBufferでポストエフェクトを掛けてステンシルバッファも使ってみる

前回、CommandBufferの入門記事を書きました。 light11.hatenadiary.com CommandBufferを使うと独自のタイミングでポストエフェクトを掛けることもできますが、ちょっとハマりポイントがあるのでメモします。

【Unity】【シェーダ】フローマップで水流を作る

フローマップとは? フローマップとは、水などの「流れ」の方向を定義するためのテクスチャです。

【Unity】【シェーダ】ブルームを独自実装する

ポピュラーなポストエフェクトであるブルームを実装してみます。 ブルーム? ブルームとは、明るい部分から光が漏れ出るような表現です。 この現象は夜道で街灯を見たときなど、人間の目でも確認できます。 実装の考え方はシンプルで、 一定以上の明度の色を…

Knee Curve と Soft Knee

UnityのBloomエフェクトの調整項目にSoft Kneeというものがあります。 docs.unity3d.com これに関連して、Knee Curve周りに関するメモです。

【Unity】視差マッピング

ノーマルマッピングに引き続き、視差マッピングもUnityで実装してみます。 ノーマルマッピングはこちら light11.hatenadiary.com

【Unity】ノーマルマッピング

ノーマルマッピングをUnityで実装してみます。 他のサイトでもよく解説されている内容なので、説明は最低限に留めます。 ノーマルマッピング? ノーマルマッピングとは、法線の向きを書き込んだテクスチャをモデル上にマッピングすることで、法線を細かく調…

【Unity】Unityにおけるリニアワークフローの挙動を簡単に確認してみる

リニアワークフローについて、以前簡単にまとめました。 light11.hatenadiary.com 今回はUnityにおけるリニアワークフロー周りの挙動を調べてみました。

【Unity】【シェーダ】ボックスフィルタリングによるぼかしのポストエフェクト

解像度を落とすことによりぼかしを加えるポストエフェクトをすでに紹介しました。 light11.hatenadiary.com これは画像をぼかすにはかなり粗いやり方であるため、この記事ではボックスフィルタリングという手法でぼかしを加えてみます。

【Unity】解像度を落として画像をぼかすポストエフェクト

ぼかし処理には色々とありますが、今回は解像度を落とすことで画像をぼかし(たように見せ)てみます。 考え方とメリット、デメリット 前提として、解像度を落とすと、画像はぼやけたように見えます。

【Unity】【シェーダ】ポストエフェクトを作るための最小コード

ポストエフェクトを自作する上での最小手順です。 ポストエフェクトの考え方 ポストエフェクトの考え方はシンプルです。

【Unity】【シェーダ】CGINCLUDEブロックの使い方

地味に使ったことなかったのでメモ。 CGINCLUDE? CGINCLUDEブロックは、複数パス間における共通設定を記述するブロックらしいです。 「設定」ってどこまでだろう。