[Unity][Shader] ビルド時にエラー"invalid input semantic 'POSITION' " が出力される
現象
エディターでは動いていたのですが、いざビルドしようとすると以下のエラーが出力される
invalid input semantic 'POSITION'
エラーが出たコードは以下。
_CameraDepthTextureを使用せずに深度画像をレンダリングするシンプルなコードです。
Pass {
cull off
CGPROGRAM
#pragma target 3.0
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f {
float4 pos : SV_POSITION;
};
v2f vert(appdata_base v)
{
v2f o = (v2f)0;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
return o;
}
float4 frag( v2f i ) : SV_Target
{
float depth = i.pos.z;
return depth.xxxx;
}
ENDCG
}
原因と対策
以下のサイトに情報が乗ってました。
http://www.boutin.de/hlsl-error-x4502-invalid-input-semantic-position/
POSITIONセマンティクスは頂点シェーダーでは使用できるが、フラグメントシェーダーでは使用できないとのことです。
考えてみれば、頂点を扱う変数をピクセルシェーダーで使用するのも変な話ですね。
頂点シェーダー内で、pos.zを別の変数に入れることで使用できました。
Author And Source
この問題について([Unity][Shader] ビルド時にエラー"invalid input semantic 'POSITION' " が出力される), 我々は、より多くの情報をここで見つけました https://qiita.com/raku-lab/items/ed2034d758a173bad747著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .