728x90
์์ ๊ธ์ ํตํด Cartesian Coordinate ๋์
Homogeneous Coordinate๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด์ ์ดํด๋ณด์์ต๋๋ค.
ํํํ๊ณ ์ ํ๋ Transformation์ ๊ฒฝ์ฐ Primitive Transformation (Translation, Rotation, Scaling)
์ผ๋ก ํํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์์ ์ง์ P1์ ๋ํ์ฌ Rotation์ ์ ์ฉํ๋ ๊ฒฝ์ฐ
์ด๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ๊ฐ์ํํ ์ ์์๊น์?
ํด๋น ์ง์ ์ ์์ ์ผ๋ก Translation์ ํ ๋ค ํ์ ํ๊ณ ์ ํ๋ ๊ฐ๋ θ ๋งํผ ํ์ ์ํค๊ณ
๋ค์ ์๋์ ์ง์ ์ผ๋ก Translation์ ํ๋ค๋ฉด ๊ธฐ์กด์ Primitiveํ ์ฑ์ง์ ๋ชจ๋ ๋ง์กฑ์ํฌ ์ ์์ ๊ฒ์
๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ธฐ๋ณธ์ ์ธ ์ถ (x-axis, y-axis)์ด ํ์ ๋์ด ์๋ ๊ฒฝ์ฐ Scaling์ด ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ
์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
Original ์ถ์ผ๋ก๋ถํฐ ํ์ ํ ๊ฐ๋ θ๋ฅผ ๋ฐ๋๋ก ํ์ ์์ผ ์์ ์ผ๋ก ๋ณต๊ตฌ ์ํจ ๋ค Scaling์ ์งํํด์ผ ํฉ๋๋ค.
์๋์ ๊ทธ๋ฆผ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก ์์๋ณผ ๊ฒ์ Shear Transformation์ ๋๋ค.
์๋์ ์ฌ์ง์ฒ๋ผ ์๋์ ์ด๋ฏธ์ง๊ฐ ๊ฐ ์ถ์ ๋ํ์ฌ ๊ธฐ์ธ์ด์ ธ ํํ๋๋ ๋ณํ์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด Shear Transformation์ Primitive Transformation์ Concatenation์ผ๋ก ํํํ ์ ์์๊น์?
์ด ์ฆ๋ช ์ ์ฌ๋ฌ๋ถ๊ป ๋งก๊ฒจ๋๋ฆฌ๊ฒ ์ต๋๋ค.
Composition of Primitive Transformation์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Original house ๋ฌผ์ฒด๋ฅผ P1์์ P2๋ผ๋ ์ง์ ์ผ๋ก ์ฎ๊ธฐ๊ณ ์ ํฉ๋๋ค.
Primitive Transformation์ผ๋ก ์ด๋ป๊ฒ ํํํ๋์ง ๋ด ์๋ค.
Original house๋ฅผ ์์ ์ผ๋ก Transform ํ๊ณ Scaling์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ๋ ํ์ ๊ฐ๋๋งํผ
ํ์ ์ํจ ํ P2 ์์น๋ก Transformation ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ 3x3 Matrix์์ ๊ฐ ์ค์ผ์ผ ์์ ๊ฐ์ด ์ด๋ค ๋ณํ์ ๋ํํ๋์ง
์ง๊ด์ ์ผ๋ก ๋๋ผ๋ ๊ฒ์ ๋๋ค.
Diagonal (r11, r22) : Scaling Value
Counter Diagonal (r12, r21) : Shearing Value
3 Column value : Translation Value
3 Row value : Homogeneous Coordinate Value
Rigid-body Transformation์ด๋ Shape์ด ๋ณํ์ง ์๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด Transformation Matrix๋ง ๋ณด๊ณ Rigid-Body์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
๋ฐฉ๋ฒ์ (r11,r12)์ (r21,r22) ํ๋ ฌ์ด Orthonomal Vector์ธ์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค.
๊ฐ๋จํ๊ฒ ๋ด์ ๊ฐ์ด 0์ธ์ง ์๋์ง ํ์ธํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Affine Transformation์ด๋ ํํ์ด ๋ณด์กด๋๋ ๋ณํ์ ์๋ฏธํฉ๋๋ค.
์ด๋ฅผ ์ฆ๋ช ํ๋ ๊ฒ๋ ์ฌ๋ฌ๋ถ๊ป ๋งก๊ฒจ๋๋ฆฝ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ๋ณํ์ ํตํด์ ์์ง์ด๋ Object๋ฅผ ์ด๋ป๊ฒ ํํํด์ผ ํ ๊น์?
์ผ์ผ์ด ํ๋์ฉ ๋ค ํํํด์ผ ํ๋ ๊ฑธ๊น์?
Vertex Coordinate Update ์ ๊ทผ ๋ฐฉ์์ ์ํ๋ฉด, ๋งค Frame๋ง๋ค World Coordinate ์ขํ์ ์์ง์์
์ฌ์ฉ์๊ฐ ์ผ์ผ์ด ๋ฐ์ํด์ค์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฌผ๋ก Homogeneous Coordinate ๋ฐฉ์์ ์ฑํํจ์ ๋ฐ๋ผ ์ฐ์ฐ๋์ด ์ค์ด๋ ๊ฒ์ ์ฌ์ค์ ๋๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค.
์ฒซ ๋ฒ์งธ๋ก ๋งค ์์ง์์ ๊ณ์ํด์ Frame์ ์ฐ์ด์ค์ผ ํ๋ค๋ ๊ฒ์ด์ง์.
๋ ๋ฒ์งธ๋ก๋ API ๋ฅผ ์ ์ํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค. Object์ ์ขํ๋ฅผ Pointer๋ก ๊ณ์ํด์
๋ณด๋ด์ค์ผ ํ๋ Overhead๊ฐ ์กด์ฌํฉ๋๋ค.
์ธ ๋ฒ์งธ๋ก๋ GPU Utilization ๊ด์ ์์ ๊ณผ์ฐ ์ด๊ฒ์ด GPU๋ฅผ ์ผ๋ง๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ์ ๋ํ
๋ฌธ์ ์ ๋๋ค. ์ปดํจํฐ ๊ตฌ์กฐ์์๋ Memory Utilization์ ๋์ด๊ธฐ ์ํด Cache๋ฅผ ๋์ ํ๊ณ ์ฌ๋ฌ Instruction Rule์ ๋ง๋ค์๋์ง๋ฅผ ์๊ฐํด๋ณด๋ฉด ์ ๊ด์ ์ ๊ต์ฅํ ๋นํจ์จ์ ์ธ ๊ฒ์ ์ ์ ์์ต๋๋ค.
Concatenate Primitive Transformation์ ์ ๊ทผ ๋ฐฉ์์ ๋์ผํ๊ฒ ์ ์ฉํด๋ณด๋ฉด ์ด๋จ๊น์?
glVertex์ ์ขํ๋ฅผ ์ฌ์ฉ์๊ฐ ์ํ๋ Image๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ๋ฐ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋๋ค.
Transformation Matrix๋ก ๊ฐ ๋ณํ ์ฑ์ง์ Matrix์ ๋ฐ์ํ์ฌ ์ ์ฉํ๋ ๊ฒ์ ๋๋ค.
OpenGL์ ๊ฒฝ์ฐ Primitive Transformation ํจ์๋ glTranslatef, glRotatef, glScalef๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.
'๐ด Course Review (Master) > ๐ ์ปดํจํฐ ๊ทธ๋ํฝ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Homogeneous Coordinate๋ฅผ ์ฌ์ฉํ๋ ์ด์ (0) | 2024.03.04 |
---|