うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】ShaderLab 条件式置き換え メモ

条件式を if 文を使わないで書く処理をメモしておきます

※define 形式です

x >= y

#define GREATER_EQUAL(x, y) step(y, x)

x <= y

#define LESS_EQUAL(x, y) step(x, y)

x > y

#define GREATER(x, y) 1.0 - step(y, x)

x < y

#define LESS(x, y) 1.0 - step(y, x)

x == y

#define EQUAL(x, y) 1 - abs(sign(x - y))

x != y

#define NOT_EQUAL(x, y) abs(sign(x - y))

0 < a && a < 1

#define RANGE01_GL(a) abs(sign(a - ceil(saturate(a))))

0 <= a && a <= 1

#define RANGE01(a) 1.0 - abs(sign(a - saturate(a)))