๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒด Course Review (Master)/๐Ÿš‘ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค

Homogeneous Coordinate๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

by UKHYUN22 2024. 3. 4.
728x90

Homogeneous Coordinate๋ฅผ ์ ์šฉํ•˜๋Š” ๋ถ„์•ผ๋Š” Computer Graphics์™€ 3D Vision๊ณผ ๊ฐ™์ด ๋‹ค์ฐจ์› ๋ฌผ์ฒด์˜ ํ‘œํ˜„์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋ณต์žกํ•œ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๋งŽ์€ ์ •๋ณด๋Ÿ‰์„ ๋‹ค๋ฃจ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

ํ”ํžˆ ๋งํ•˜๋Š” Geometric Transformation๋Š” ๋‹ค์Œ 3๊ฐ€์ง€๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

1. Changing the position of points

2. Translation, scaling, Rotation

3. Animating object and camera

 

์ด ์ค‘์—์„œ ์ €ํฌ๋Š” 2๋ฒˆ์— ํ•ด๋‹นํ•˜๋Š” Matrix Transformation๊ณผ ๊ด€๋ จ๋œ ์ด๊ด„์ ์ธ ๊ฐœ๋…์„ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋กœ Translation (ํ‰ํ–‰ ์ด๋™) ์ž…๋‹ˆ๋‹ค.

2์ฐจ์› ํ‰๋ฉด ์ƒ์—์„œ x, y ์ขŒํ‘œ์— dx, dy ๋งŒํผ ๋”ํ•˜์—ฌ ์ด๋™์ด ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๋‘ ๋ฒˆ์งธ๋กœ Scaling ์ž…๋‹ˆ๋‹ค.

ํ‰ํ–‰์ด๋™๊ณผ ๋‹ฌ๋ฆฌ ๊ณฑ์…ˆ์„ ํ†ตํ•ด Scale ๋ณ€ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋˜๋ฉฐ, Sx, Sy์— ํ•ด๋‹นํ•˜๋Š”

์ƒ์ˆ˜ ๊ฐ’ ๋งŒํผ ๊ณฑํ•˜์—ฌ ๋ฌผ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ ๋งํ•˜๋Š” Uniform ์ด๋ž€ Sx์™€ Sy์˜ ๊ฐ’์ด ๊ฐ™์•„์„œ ๋‹ค๋ฅธ ์ถ•์— ๋Œ€ํ•˜์—ฌ

๋™์ผํ•œ ๊ฐ’ ๋งŒํผ ์ค„์–ด๋“œ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์„ธ ๋ฒˆ์งธ๋กœ Rotation ์ž…๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ฐ๋„์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์œผ๋กœ cosin๊ณผ sine ์„ ์ด์šฉํ•˜์—ฌ ์ขŒํ‘œ๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์‹œ๊ณ„ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ θ ๋งŒํผ ํšŒ์ „ํ•œ ๊ฒฝ์šฐ x์˜ ์ขŒํ‘œ๋Š” cos θ, y์˜ ์ขŒํ‘œ๋Š” sin θ๋กœ ๋ณ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

์ด๋•Œ ๊ธฐ์กด์˜ ์ขŒํ‘œ๋ฅผ (1,0) ์ด๋ผ๊ณ  ํ•˜๋ฉด (cos θ, sin θ)๊ฐ€ ๋˜๊ณ  (0,1)์˜ ๊ฒฝ์šฐ (-sin θ, cos θ) ์ด๋ฏ€๋กœ

2D์˜ ๊ฒฝ์šฐ ((cos θ, sin θ) (-sin θ, cos θ)) ํ–‰๋ ฌ๋กœ ํ‘œํ˜„์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

2D Matrix์˜ ๊ฒฝ์šฐ

Cartesian matrix๋กœ Translation๋Š” ๋ง์…ˆ, Scaling, Rotation์€ ๊ณฑ์…ˆ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋œ๋‹ค.

์ด๋•Œ์˜ ๊ด€์ ์€ Object์˜ Position์— ํ•ด๋‹นํ•˜๋Š” ์ •๋ณด๋กœ

์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ Translation์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ํฐ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

Transformation(๋ง์…ˆ) ๊ณผ rotation(๊ณฑ์…ˆ)์ด ๋™์‹œ์— ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

Matrix Multiplication์˜ ํšจ๊ณผ๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๊ณ  ์—ฌ์ „ํžˆ ๋ง์…ˆ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์˜์—ญ์ด ์ƒ๊ฒจ์„œ

์—ฐ์‚ฐ๋Ÿ‰ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ์š”?

ํ•ด๋‹ต์€ Homogeneous Coordinate์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Š” Dimension Expansion์œผ๋กœ ์ฐจ์›์˜ ์˜์—ญ์„ ๋„“ํ˜€์„œ Catesian์œผ๋กœ ํ‘œ์‹œํ–ˆ์„ ๋•Œ๋Š” 

Object๋ฅผ Position์˜ ๊ด€์ ์„ ๋ณด์•˜์ง€๋งŒ Homogeneous์˜ ๊ฒฝ์šฐ Direction ๊ด€์ ์œผ๋กœ ํ•ด์„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ง์…ˆ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ–ˆ๋˜ Translation์˜ ๊ฒฝ์šฐ Matrix Multiplication์œผ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

W = 0์ธ ๊ฒฝ์šฐ ์ขŒํ‘œ๊ณ„๊ฐ€ ๋ฌดํ•œ๋Œ€๋กœ ๋ฐœ์‚ฐํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ Translation์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์—์„œ๋Š” ๊ธฐ์กด ์ขŒํ‘œ Vector๊ฐ€ (x,y,1)๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ

(x,y,0)์œผ๋กœ ์„ค์ •ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ dx์™€ dy์— ํ•ด๋‹นํ•˜๋Š” Transformation Scale์ด 0์œผ๋กœ ๊ณฑํ•ด์ ธ์„œ 

์•„๋ฌด ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

์ฆ‰, Homogeneous Coordinate๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ๋ชจ๋“  Transformation์„

ํ•˜๋‚˜์˜ Matirx Multiplication์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค๋Š” ์ด๋ก ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

Scaling ๊ณผ Rotation์˜ ๊ฒฝ์šฐ Transformation Matrix ๋งˆ์ง€๋ง‰์— (0,0,1)์ด ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์›์ดˆ์ ์ธ Transformation์ด 3x3 ํ–‰๋ ฌ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.