Shader

【Unity】【シェーダ】Custom Render Textureを使ってみる

Unity2017から追加されたCustom Render Textureを簡単に使ってみました。

【Unity】プロジェクション行列は掛けるだけじゃなくてw除算しなきゃダメだよという話

カメラ空間からプロジェクション空間に座標変換する過程の理解が曖昧だったので、それに関する記事です。 プロジェクション座標変換とは? プロジェクション行列掛けるだけじゃダメ Unityで確認する 確認1 視錐台と同じ形のメッシュ 確認2 P行列で座標変換す…

【Unity】【シェーダ】小数点の精度と型の使い分けについて(float / half / fixedの話)

シェーダで小数点を使う時には、float、half、fixedの3つの型が使えます。 この記事ではこれらの違いと使い分けについて簡単にまとめます。 必要な知識のみ。深入りはしません(できません)。

【Unity】【シェーダ】RenderTypeをスクリプトから変更する

RenderTypeをスクリプトから変更する方法です。 Standardシェーダのように不透明や半透明をエディタから切り替える機能をつけるときなどに便利です。

【Unity】【シェーダ】Custom Render Queueについて

マテリアルからQueueによる描画順をいじるCustom Render Queueの使い方です。

【Unity】【シェーダ】clip()やdiscardを使うときにはRenderQueueをAlphaTestにする話

AlphaTestというRenderQueueについてちゃんと理解できていない感があったので調べました。

【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】不透明キューの描画順が手前からじゃない件

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