2/28
2026/02/28
行列
- 一次変換(Linear transformation):入力と出力がベクトルである関数
- ベクトルは基底ベクトルの線形結合として表せる
- v=(x,y)を変換する 基底ベクトルiとjがあるとして、iが(2,2) jが(-2,1)に移動したとすると
v=x[2] + y[-2] となる
[2] [ 1] - 一次変換は[a b] となっていると iが(a,c)で jが(b,d)といえる。
[c d] - [a b][x] = x[a] + y[b] = [ax + by]
[c d][y] [c] [d] [cx + dy] - 90度回転はi=(1, 0) j=(0,1) のときi=(0,1), j=(-1,0)になる
行列は[0, -1]
[1, 0]
掛け算の見た目は[回転行列]vとなる - 回転と平行移動の式の見た目
[移動]([回転行列]v) となる - このように関数を読むときは右から左に読む
Three.js
aurora復習
vartexでvRd = modelPosition.xyz - cameraPosition;
fragmentでnormalizeしてレイの方向を求めてる。レイマーチングの一種。
三角波ノイズ
オーロラで最も難しい箇所なので、深追いしない。ノイズ関数の半端な値も、たまたまそうすればよく見えたというだけなので。
float tri(float x){ return clamp(abs(fract(x)-.5), 0.01, 0.49); }fract(x) // 0~1ののこぎり波
fract(x) - .5 // -0.5 ~ 0.5
abs(fract(x) - .5) // V字型(三角波)
clampで0.0を避けて割り算でバグらないように
花火リファクタ
mix(2.5, 0.0, progress)
mixでもリマップみたいなことができるのか