3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Unity] Unityの定義済プリプロセッサマクロ

Last updated at Posted at 2014-11-26

ドキュメントはこちら

シェーダを書いていて毎回、これはいつどういうときに設定されるのか悶々としてたんですが、ドキュメントがあったのでメモ。
(使いそうなものをピックアップしています)

ターゲットプラットフォーム

マクロ 意味
SHADER_API_OPENGL デスクトップ向けOpenGL
SHADER_API_D3D9 Direct3D 9
SHADER_API_XBOX360 Xbox 360
SHADER_API_PS3 PlayStation 3
SHADER_API_D3D11 デスクトップ向けDirect3D 11
SHADER_API_GLES OpenGL ES 2.0 (デスクトップまたはモバイル向け)、 SHADER_API_MOBILE の存在により判定
SHADER_API_FLASH Flash Stage3D
SHADER_API_D3D11_9X Windows RTターゲット向けのDirect3D 11

UnityCG.cgincなどのファイル内で処理の分岐などに使われています。

プラットフォーム差異のヘルパー

マクロ 意味
UNITY_PROJ_COORD(a) 4成分ベクトルを渡すと、投影されたテクスチャ読み込みに適切なテクスチャ座標を戻します。殆どのプラットフォームでは渡された値そのものを戻します。

シャドウ マッピング マクロ

マクロ 意味
UNITY_DECLARE_SHADOWMAP(tex) "tex" という名前のシャドウ マップ テクスチャ変数を宣言します。
UNITY_SAMPLE_SHADOW(tex,uv) "tex" という名前のシャドウ マップ テクスチャを特定の "uv" 座標にサンプリングします(XY コンポーネントはテクスチャの場所、Zコンポーネントは相対的なデプス)。
0 - 1 の範囲で シャドウとしてひとつの float 変数を戻します。
UNITY_SAMPLE_SHADOW_PROJ(tex,uv) 上記と同様であるが、プロジェクティブなシャドウマップ読み込みを行います。 "uv" は float4 であり、他の全てのコンポーネント は ルックアップをするために .w で除算します。
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?