WebGLの勉強を始めました。の姉妹記事的な感じです。
主にGLSLについてのメモや備忘録を書いていきます。
ビルトイン関数(一部)
関数 |
説明 |
radians(x) |
xを度数からラジアンに変換する |
degrees(x) |
xをラジアンから度数に変換する |
abs(x) |
xの絶対値を返す |
sign(x) |
xが正なら+1.0、0.0なら0.0、負なら-1.0を返す |
floor(x) |
x以下の最大の整数を返す |
ceil(x) |
x以上の最小の整数を返す |
fract(x) |
x-floor(x)を返す |
mod(x, y) |
x-y*floor(x/y)を返す |
min(x, y) |
xとyのより小さい値を返す |
max(x, y) |
xとyのより大きい値を返す |
clamp(x, a, b) |
min(max(x, a), b)を返す。なお、HLSLなどで実装されている saturate 関数は、clamp(a, 0.0, 1.0) によって実現できる |
mix(x, y, a) |
x(1-a)+y*aを返す(つまり線形補間) |
step(a, x) |
aはしきい値、xはチェックされる値。しきい値未満の場合は0.0を、それ以上の場合は1.0の二値化を行う関数 |
smoothstep(e0, e1, x) |
エルミート補完を行う |
sin(x) |
正弦を返す |
cos(x) |
余弦を返す |
tan(x) |
正接を返す |
asin(x) |
逆正弦を返す |
acos(x) |
逆余弦を返す |
atan(y, x) |
逆正接を返す |
pow(x, y) |
xのy乗を返す |
exp(x) |
eのx乗を返す |
log(x) |
xの自然対数を返す |
exp2(x) |
2のx乗を返す |
log2(x) |
xの底2のlogを返す |
sqrt(x) |
xの平方根を返す |
inverssqrt(x) |
1/sqrt(x)を返す |
ベクトル用ビルトイン関数(一部)
関数 |
説明 |
length(x) |
xの長さをfloatで返す |
distance(x, y) |
xとyの距離をfloatで返す |
normalize(x) |
xを正規化した値を返す |
dot(x, y) |
xとyの内積をfloatで返す |
cross(v1, v2) |
vec3型の引数v1とv2の外積をvec3で返す |
faceforward(N, I, R) |
dot(R, I) < 0ならNを返し、それ以外は-Nを返す |
reflect(I, N) |
Nを法線として、Iの反射方向をIと同じ型で返す |
refract(I, N, eta) |
Nを法線、eta(常にfloat型)を屈折率として、Iの屈折方向をIと同じ型で返す |
ベクトルの比較演算
関数 |
説明 |
lessThan(x, y) |
要素ごとの x < y の比較結果を返します |
lessThanEqual(x, y) |
要素ごとの x <= y の比較結果を返します |
greaterThan(x, y) |
要素ごとの x > y の比較結果を返します |
greaterThanEqual(x, y) |
要素ごとの x >= y の比較結果を返します |
equal(x, y) |
要素ごとの x == y の比較結果を返します |
notEqual(x, y) |
要素ごとの x != y の比較結果を返します |
any(x) |
xのすべての要素がfalseならfalseを、それ以外ならtrueを返します |
all(x) |
xのすべての要素がtrueならtrueを、それ以外ならfalseを返します |
not(x) |
xの全要素の真偽値を反転して返します |