カリング (Culling)

  • Back 表面のみレンダリングする (デフォルト)
  • Front 裏面のみレンダリングする
  • Off 両面をレンダリングする

ドキュメント:

Culling と Depth Testing | Unity 2018.4 マニュアル [公式]

参考:

カリング制御可能な標準シェーダーを作る | Kludge Factory

透過/半透明シェーダー

こちらのページを参照

参考:

Unity フラグメントシェーダーで背景を透過してみる | マカロン

スタンダードシェーダーで モデルを綺麗に半透明表示する – Qiita

3D モデルの半透明をキレイに表示するシェーダを実装する | コガネブログ

Unlit Shader の要素を全て解説 | アマガミナブログ

デプスバッファ/デプステスト (Depth Testing)

ドキュメント:

Culling と Depth Testing | Unity 2018.4 マニュアル [公式]

参考:

オブジェクトが重なった部分をくり抜く | おもちゃラボ

カメラから見た深度を描画する | LIGHT11

キューブマップ

参考:

シェーダーでキューブマップを描画するには | 3DCG school

ワールド座標系

参考:

_CameraDepthTexture と screenPos からワールド座標を復元する | 黒鳥のメモ

線形代数/行列/ベクトル演算

参考:

How to rotate vectors in a shader? – reddit

Replaced Shaders

Replacement Shader タグ
  • Opaque
  • Transparent
  • TransparentCutout
  • Background
  • Overlay
  • TreeOpaque
  • TreeTransparentCutout
  • TreeBillboard
  • Grass
  • GrassBillboard

ドキュメント:

Replaced Shaders でのレンダリング | Unity 2019.4 マニュアル [公式]

何も描画しないシェーダーを作る

Shader "Custom/Void"
{
    SubShader
    {
        ColorMask 0 Zwrite Off
        Pass {}
    }
}Code language: Arduino (arduino)

参考:

何もしない透明な Unity シェーダー/不要パーツを消す | 佐藤敏

すりガラス風

参考:

すりガラスの軽量表現 | Tsumiki Tech Times

トーンマップを適用する

参考:

ポストプロセスを使わずにトーンマッピングをする | Tsumiki Tech Times

トーンマップいろいろ | 下町のナポレオン

global keywords exceeded エラー

現象:

シェーダーキーワードを制限以上に使用しているため一部のキーワードが無視される旨のエラーが発生する。

Maximum number (256) of shader global keywords exceeded, keyword _XXX will be ignored. You will have to delete some shaders or make them use less keywords.

対処法:

  • 使用していないシェーダーあるいはキーワードをプロジェクトから取り除く。
  • グローバルキーワードの代わりにローカルキーワードを使用する。
  • キーワードを固定化 (ベイク) する。
  • 「Shader Control」アセットを使って対処する。

参考:

Maximum number (256) of shader global keywords exceeded, keyword will be ignored and black materials – Unity Forum

Maximum number (256) of shader keywords exceeded – Unity Forum

Maximum number (256) of shader global keywords exceeded – Unity Forum

Maximum number (256) of shader keywords exceeded and materials are pink – Unity Forum

The “Maximum number (256) of shaders” error – Unity Forum

Shader keyword limit – Unity Forum

Maximum number (256) of shader global keywords exceeded, keyword _DISTORTION_ON will be ignored. You will have to delete some shaders or make them use less keywords. – Unity Answers

Maximum number (256) of shader global keywords exceeded, keyword Unity – Stack Overflow

発光

参考:

Glow っぽいシェーダを書いてみた – Qiita

サンプラー

ドキュメント:

サンプラー状態の利用 | Unity マニュアル [公式]

参考:

Shader の勉強 #1 – Qiita

tex2D でミップマップをサンプリングする際に端にノイズが出る | しゅみぷろ

TEXCOORD

参考:

使用する TEXCOORD をマテリアルから指定できるようにする | LIGHT11

Particle System の Custom Vertex Streams と Custom Data の使い方まとめ | LIGHT11

Blend

参考:

Blend を試してみる – Qiita

Blend – ShaderLab コマンド | Unity マニュアル [公式]

Offset

深度オフセット/深度バイアスを設定する。

ドキュメント:

Offset – ShaderLab コマンド | Unity マニュアル [公式]

ライトマップ

コード:

Mobile-Lightmap-Unlit.shader – TwoTailsGames/Unity-Built-in-Shaders – GitHub

参考:

‘Scale In Lightmap’ accessible from shader? – Unity Forum

How to use lightmaps from a custom shader? – Unity Discussions

Texture Combiners

**LEGACY**

ドキュメント:

古いテクスチャ合成 | Unity マニュアル [公式]

参考:

Texture Combiners を理解する | Unity な日々

テッセレーション (Tessellation)

動画:

DirectX 11 Watertight Adaptive Tessellation

頂点アニメーションテクスチャ/VAT シェーダー

参考:

Unity のシェーダー開発方法のまとめと備忘録/頂点アニメーションテクスチャ (VAT) シェーダー – Qiita

ディザリング

  • _DitherMaskLOD2D

参考:

ビルトインのディザ抜き用テクスチャを取得する | LIGHT11

スクリーンスペースブーリアン

参考:

Unity でスクリーンスペースのブーリアン演算をやってみた | 凹みTips

メタボール

参考:

簡単に水に近い表現を実現したい | KAYAC engineers’ blog

GLSL を移植する

参考:

Unity に GLSL (サーフェスシェーダー) を書く方法 | すだちキャンパス

パフォーマンス

旧シェーダーのパフォーマンス

およそ次の順序で描画負荷が高くなる。

  • Unlit
  • Vertex Lit
  • Diffuse
  • Normal Mapped
  • Specular
  • Normal Mapped Specular
  • Parallax Normal Mapped
  • Parallax Normal Mapped Specular

ドキュメント:

シェーダーのパフォーマンス | Unity マニュアル [公式]

シェーダーを書く場合のパフォーマンスのヒント | Unity マニュアル [公式]

アルファテスト (Alpha Test)

**LEGACY**

ドキュメント:

古いアルファテスト | Unity マニュアル [公式]

カラーマスク (ColorMask)

ドキュメント:

Pass | Unity 2019.4 マニュアル [公式]

旧シェーダー

Standard Shader が導入される以前に使用されていた各用途毎に個別に記述されたシェーダー。

ファミリー
法線シェーダー
透明シェーダー

ドキュメント:

旧シェーダーコード | Unity マニュアル [公式]

Shader Tutorials (Ronja)

リンク:

Shader Tutorials by Ronja

リポジトリ:

ronja-tutorials/ShaderTutorials: Unity Shader Tutorials – GitHub

参考:

ボロノイノイズによるステンドグラスシェーダを実装できる Shader Tutorials 紹介 | コガネブログ

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA