426
344

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GLSLについてのメモ

Last updated at Posted at 2013-07-31

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
426
344

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?