「フラグメントシェーダー」の版間の差分
(ページの作成:「== 座標変換(2D) ==」) |
|||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
== 座標変換(2D) == | == 座標変換(2D) == | ||
ピクセル座標が与えられ、テクスチャ空間から値を取ってくることを考える。 | |||
ピクセル座標を <math>p</math> とする。 | |||
変換後の座標を <math>p'</math> とする。 | |||
テクスチャ上の点 <math>p'</math> を変換して <math>Ap'</math> に移ったら <math>p</math> に一致する、ような <math>p'</math> を見つければよい。 | |||
=== そのまま === | |||
<math>p'=p</math> | |||
=== 平行移動 === | |||
テクスチャを <math>v</math> だけ平行移動させる。 | |||
テクスチャを <math>v</math> ずらすということは、ピクセル目線だと自分が <math>-v</math> 動くということであり、 | |||
<math>p' = p - v</math> | |||
=== 回転移動 === | |||
テクスチャを <math>\theta</math> だけ回転させる。 | |||
ピクセル目線だとやはり自分が <math>-\theta</math> だけ回転することになる。 | |||
回転行列などで計算する。 | |||
=== 拡大・縮小 === | |||
テクスチャを <math>k</math> 倍に拡大(縮小)する。 | |||
ピクセル目線だと自分が <math>\frac{1}{k}</math> 倍になれば、相手が <math>k</math> 倍になっているように見える。 | |||
<math>p' = \frac{p}{k}</math> |
2025年2月2日 (日) 20:23時点における最新版
座標変換(2D)
ピクセル座標が与えられ、テクスチャ空間から値を取ってくることを考える。
ピクセル座標を [math]\displaystyle{ p }[/math] とする。
変換後の座標を [math]\displaystyle{ p' }[/math] とする。
テクスチャ上の点 [math]\displaystyle{ p' }[/math] を変換して [math]\displaystyle{ Ap' }[/math] に移ったら [math]\displaystyle{ p }[/math] に一致する、ような [math]\displaystyle{ p' }[/math] を見つければよい。
そのまま
[math]\displaystyle{ p'=p }[/math]
平行移動
テクスチャを [math]\displaystyle{ v }[/math] だけ平行移動させる。
テクスチャを [math]\displaystyle{ v }[/math] ずらすということは、ピクセル目線だと自分が [math]\displaystyle{ -v }[/math] 動くということであり、
[math]\displaystyle{ p' = p - v }[/math]
回転移動
テクスチャを [math]\displaystyle{ \theta }[/math] だけ回転させる。
ピクセル目線だとやはり自分が [math]\displaystyle{ -\theta }[/math] だけ回転することになる。 回転行列などで計算する。
拡大・縮小
テクスチャを [math]\displaystyle{ k }[/math] 倍に拡大(縮小)する。
ピクセル目線だと自分が [math]\displaystyle{ \frac{1}{k} }[/math] 倍になれば、相手が [math]\displaystyle{ k }[/math] 倍になっているように見える。
[math]\displaystyle{ p' = \frac{p}{k} }[/math]