【Unity】セマンティクス VPOS/WPOS
2019年4月17日
シェーダーセマンティクス を通じて取得できます
VPOS が HLSLでの画面座標、WPOS が Cgでの画面座標になります。
現在処理中のスクリーン座標を xy から取得できます。
fixed4 frag ( float4 screenPos : VPOS) : SV_Target
{
return fixed4( screenPos.xy / _ScreenParams.xy, 0, 1);
}
また、オフセットで 0.5 が付加されており、テクセルの中心が示されています
fixed4 frag( UNITY_VPOS_TYPE sp:VPOS) : SV_Target
{
return fixed4( frac( sp.x), frac( sp.y), 0, 1);
}
frac() は小数部分のみを抽出する組込関数。
すべて 0.5 で埋まっているのがわかります。
この画素の中心を示していることを考慮に入れないと、意図しないゴミが出たり余計な苦労が発生します。(自分のように)
WPOS と VPOS の違いを調べましたが、わかりませんでした。