コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】【アセット】プログラム不要のシェーダ作成アセット「Shader Wizard - CG Shader Generator」紹介

Asset Store

概要

  • ウィンドウで設定したものをShaderファイルとして出力可能
  • 頂点シェーダーやフラグメントシェーダー、サーフェイスシェーダーのベースとなるShaderファイルを出力可能

使用方法

  1. Unityメニューの「Tools>ShaderWiz>Shader Wizard」を選択
    f:id:baba_s:20150608173301p:plain
  2. 「Shader Wizard」ウィンドウの「Generate」を選択
    f:id:baba_s:20150608173306p:plain
  3. ファイル名を指定

Properties

  • メンバ変数を追加できる
  • Textureの設定が少し足りない?
  • TextureはTexGenという固定機能テクスチャを採用している(Unity 5 から廃止される機能)
  • IntとTextureの3D、Cubeが存在しない
  • 「+」を選択するとプロパティを追加できる
  • 「-」を選択するとプロパティを削除できる
    f:id:baba_s:20150608173313p:plain

Subshaders

  • SubShaderへシェーダーの処理を追加できる
    f:id:baba_s:20150608173318p:plain
  • 「+」を選択するとシェーダーの処理を追加できる
  • 「-」を選択するとシェーダーの処理を削除できる
  • 「+」を選択すると下記の画像のようなポップアップメニューが表示される
  • ここでサーフェイスシェーダーかカスタムシェーダーかを指定できる
    f:id:baba_s:20150608173323p:plain
  • 「Edit subshader settings」を選択すると追加したシェーダーを編集できる
    f:id:baba_s:20150608173330p:plain

Edit subshader settings

  • 編集できる項目はサーフェイスシェーダーとカスタムシェーダーで違うので注意

Custom

  • 頂点シェーダーとフラグメントシェーダーに対してもう1段階Pass設定がある
    f:id:baba_s:20150608173336p:plain
  • Passes : Edit pass setting
    f:id:baba_s:20150608173340p:plain

Depth Test

項目 説明
Write to depth buffer ZWriteの設定(チェック時はコードなし,外している時はZWrite off)
Depth test function デプステストの設定(デフォルトはLess Equal)
Use offset オフセットを設定する場合はONにして数値を入力

Blending

項目 説明
Applly blending ブレンディングモードを有効にする場合はON
-Source factor 最初のRGBデータソースを指定(生成されたカラーをブレンディングする設定)
-Destionnation factor 2番目のRGBデータソースを指定(画面にすでにあるカラーをブレンディングする設定)
Blend alpha separately アルファチャンネルのブレンディングを有効にする場合はON
-Source factor 最初のアルファチャンネルデータソースを指定(生成されたアルファ値をブレンディングする設定)
-Destionnation factor 2番目のアルファチャンネルデータソースを指定(画面にすでにあるアルファ値をブレンディングする設定)
Blend operation レンダーターゲットとピクセルシェーダ出力を組み合わせるために使用されるブレンド操作(デフォルトはAdd)( dd,Sub,RevSub,Min,Max以外の定数は、上記のブレンディング設定は無効化されDirectX11でのみ有効

Vertex Attributes

項目 説明
Use preset ShaderLabで組み込まれている入出力用構造体を使用する場合はON
Use custom 自作の入出力用構造体を使用する場合はON

Shader Options

項目 説明
Use geometry shader ジオメトリシェーダーを使用する場合はON
-Input topology 入力用メッシュ構成を設定
-Output topology 出力用メッシュ構成を設定
-Max vertex count 作成する頂点の最大数を設定
Compile to GLSL for desktop プラットフォームがデスクトップでコンパイル時にCg/HLSLをGLSLに変換する場合はON
Auto-normalize normal/tangent vectors モバイル向けGLSL(iOS/Android)シェーダをコンパイルする時に法線/接線ベクトルの自動正規化を有効にする場合はON
Generate debug info for DX11 DirectX 11用にコンパイルされたシェーダーのデバッグ情報を生成する場合はON。Visual Studio 2012以降のグラフィックスデバッガーが使用できる
Shader target シェーダーモデルを設定

Misc Settings

項目 説明
Light mode ライティングパイプラインでのパスの役割を設定
Face culling カリングの制御を設定
Require soft vegetation Quality SettingsがSoftVegetationの時だけ描画する場合はON
Apply fog フォグモードを追加する場合はON
Allow pass to be referenced externally 外部から参照できるパス名を設定できるようにする場合はON

Include

  • IncludeしたいファイルはONにする

Subshader Settings

項目 説明
Force no shadow casting オブジェクトのシャドウを投影しない場合はON
Ignore Projector オブジェクトがProjectorsの影響を受けないようにする場合はON
Rendering order position 描画順の設定

Fallback

  • FallBackを追加可能

Comments

  • Shaderファイルへ自動ヘルプコメントを追加可能

良かったところ

  • Shaderを記述するためのベースとなるファイルを作成できる
  • ウィンドウでチェックを入れたり名前を設定するだけで枠組みが作成できる

気になったところ

  • 設定が保存されないのでウィンドウを閉じてしまうと設定し直す必要がある

関連記事