[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 μμΌλ‘ μ§ννλ€.