Help us understand the problem. What is going on with this article?

GLSLについてのメモ

More than 1 year has passed since last update.

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の全要素の真偽値を反転して返します
edo_m18
現在はUnity ARエンジニア。 主にARのコンテンツ制作をしています。 最近は機械学習にも興味が出て勉強中です。 Unityに関するブログは別で書いています↓ https://edom18.hateblo.jp/
http://edom18.hateblo.jp/
unity-game-dev-guild
趣味・仕事問わずUnityでゲームを作っている開発者のみで構成されるオンラインコミュニティです。Unityでゲームを開発・運用するにあたって必要なあらゆる知見を共有することを目的とします。
https://unity-game-dev-guild.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away