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の全要素の真偽値を反転して返します |