[OpenGL] 4. Transformations
Homogeneous Coordinates
- n์ฐจ์ ์ขํ๋ฅผ n+1์ฐจ์์ผ๋ก ํํํ๋ ๋ฐฉ์์ด๋ค.
- Point๋ n+1 ๋ฒ์งธ Scalar์ 1๋ก, Vector๋ 0์ผ๋ก ๋ช
์ํ๋ค.
Affine Space
- Vector ์ฐ์ฐ์
- Scalar * Vector = Vector
- Vector + Vector = Vector
- Dot_Product(Vector, Vector) = Scalar
- Cross_Product(Vector, Vector) = Vector
- Point ์ฐ์ฐ์
- Point - Point = Vector
- Point + Vector = Point
- 0 * Point = 0(Zero Vector)
Translation
- ์ขํ๋ฅผ (dxโ,dyโ,dzโ)๋งํผ ์ด๋์ํจ๋ค.
Rotation
- ์ขํ๋ฅผ ์์ ์ ๊ธฐ์ค์ผ๋ก ฮธ๋งํผ ํ์ ์ํจ๋ค.
Scale
- ์ขํ๋ฅผ ๊ฐ ์ถ ๋ฐฉํฅ์ผ๋ก (dxโ,dyโ,dzโ)๋ฐฐ ํ๋/์ถ์ํ๋ค.
- ํฉ์ฑ ๋ณํ ์ Scale -> Rotation -> Translate ์์ผ๋ก ๋ณํํ๋ค.
- xโฒ=T(R(S(p)))
- ์์ ์ด ์๋ ์ ์ ๊ธฐ์ค์ผ๋ก Rotation/Scale ํ ์
(์์ ์ผ๋ก Translate) -> Rotation/Scale -> (์๋ ์์น๋ก Translate) ์์ผ๋ก ์งํํ๋ค.