๋ ๋๋ง ํ์ดํ๋ผ์ธ: ์ค๋ธ์ ํธ๋ฅผ ํ๋ฉด์ ํํํ๊ธฐ ์ํ ์ผ๋ จ์ ์์
๋ค
์
ฐ์ด๋: ํ๋ฉด์ ์์ ์น ํ๋(Shading) ํ๋ก๊ทธ๋จ (๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ์ค๊ฐ ํ์ดํ ๊ต์ฒด)
๋ฒํ
์ค ์
ฐ์ด๋: ๊ทธ๋ ค์ง ์์น๋ฅผ ๊ฒฐ์ ํ๋ ์
ฐ์ด๋
ํ๋๊ทธ๋จผํธ ์
ฐ์ด๋: ์น ํ ์์ ๊ฒฐ์ ํ๋ ์
ฐ์ด๋
๊ทธ๋ํฝ์ค API ์ด๊ธฐํ: ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๊ธฐ ์ ์ ์ํํ๋ ์ ์ฒ๋ฆฌ
GPU ๋๋ฐ์ด์ค: ํ์ฌ ๊ธฐ๊ธฐ์ GPU๋ฅผ ํํํ๋ ์ค๋ธ์ ํธ. ํ๋๋ง ์์ฑ, ํ๋๋ง ์กด์ฌ. GPU๋๋ฐ์ด์ค๋ก ์ด์ด์ง๋ค
์ปค๋งจ๋ ํ: GPU์ ์ ๋ฌํ ๋ช
๋ น์ ์์๋๋ ๊ณณ.ย ํ๋๋ง ์์ฑ, ํ๋๋ง ์กด์ฌ.
์ปค๋งจ๋ ๋ฒํผ: ๊ฐ๊ฐ์ ์ปค๋งจ๋๋ค์ ์์๋ ๊ฒ. ์ด๊ฒ์ ์ปค๋งจํฌ ํ์ ์๊ฒ๋๋ค.
๋ ๋๋ง ํ์ดํ๋ผ์ธ ์ํ: ๋ ๋๋ง ํ์ดํ๋ผ์ธ์์ ์ฌ์ฉํ ์์ฑ๋ค์ ๊ฐ์ง๋ฉฐ ์ฌ๋ฌ๊ฐ ์์ฑ ๊ฐ๋ฅํ๊ณ , ์ด๋ฅผ ํตํด ์๋ก๋ค๋ฅธ ์ค๋ธ์ ํธ์ ์๋ก๋ค๋ฅธ ์
ฐ์ด๋ ์ ์ฉ๊ฐ๋ฅ
๋ ๋๋ง ํ์ดํ๋ผ์ธ ์์ ์: ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ด ์ด๋ค ์์ผ๋ก ๋์ํ ์ง ๋ฌ์ฌํ๋ ์ค๋ธ์ ํธ. ์ ์ ์์ ์, ๋ฒํ
์ค์
ฐ์ด๋, ํ๋๊ทธ๋จผํธ ์
ฐ์ด๋ ๋ฑ์ด ํฌํจ๋๋ค.
์ ์ ์์ ์: ์ ์ ์ ๊ตฌ์ฑ์ ๋ฌ์ฌํ๋ฉฐ ์ ์ ์ ์กฐ๋ฆฝํ ๋ ์ฌ์ฉ๋๋ค
์ ์ : vertex ๊ณต๊ฐ์์ ์์น๋ฅผ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ๊ผญ์ง์ ์ ํํ. ์ ์ ์ ์์น ์ด์ธ์๋ ์ปฌ๋ฌ, ๋
ธ๋ง, ํ
์คํฐ ์ขํ ๋ฑ ๋ค๋ฅธ ์ฌ๋ฌ ์์ฑ๋ค์ ๊ฐ์ง๊ณ ์๋ค
์ ์ ์์ฑ: ์ ์ ๋ค์ด ๊ฐ์ง๊ณ ์๋ ์์ฑ๋ค. ์
ฐ์ด๋ ์์์๋ ๊ตฌ์กฐ์ฒด๋ก ๋ค๋ฃจ์ง๋ง ์ปค๋งจ๋๋ฅผ ํตํด GPU๋ก ์ ๋ฌ๋ ๋ ์คํธ๋ฆผ ํํ์ ๋ฒํผ๋ก ์ ๋ฌ๋จ
๋๋ก์ฐ ์ฝ: ์ค๋ธ์ ํธ๋ฅผ ํ๋ฒ ๊ทธ๋ฆฌ๋๋ฐ ํ์ํ ๋ช
๋ น๋ค์ ๋ฌถ์. ์ปค๋งจ๋ ๋ฒํผ์ ์ปค๋งจ๋๋ฅผ ์์ฑํ์ฌ GPU์ ์ ๋ฌํ ๋ช
๋ น์ ์ถ๊ฐํ๋ค.
์ ์ ์กฐ๋ฆฝ: ์ ์ ๋ฒํผ๋ค์ ์์๋ค์ ์ ์ ๊ตฌ์กฐ์ฒด๋ก ์กฐ๋ฆฝ(gpu์ ์ ๋ฌ๋ ์คํธ๋ฆผ ํํ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ ์ ๊ตฌ์กฐ์ฒด ํํ๋ก ๋ง๋ ๋ค)
๋ฒํ
์ค ์
ฐ์ด๋: ์ ์ ์ ์
๋ ฅ๋ฐ์ ๋ค๋ฅธ ํํ์ ์ ์ ์ผ๋ก ๋ณํ
ํฌ์: 3D ๊ณต๊ฐ์์ ์ ์ ์์น๋ฅผ ํด๋ฆฝ๊ณต๊ฐ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ
๋ณํํ๋ ฌ: ์ ์ ์ ์์น๋ฅผ ์ฎ๊ฒจ์ค๋ค. ๋ชจ๋ธํ๋ ฌ, ๋ทฐํ๋ ฌ, ํฌ์ ํ๋ ฌ์ ๊ฑฐ์น๋ค.
๋ชจ๋ธํ๋ ฌ: ์ค๋ธ์ ํธ ๊ณต๊ฐ์ ์ ์ ์ ์๋ ๊ณต๊ฐ์ผ๋ก ๋ณํํ ๋ ๊ณฑํด์ฃผ๋ ํ๋ ฌ
์ค๋ธ์ ํธ ๊ณต๊ฐ: ๋ชจ๋ธ๋ง์ ํผ๋ด๊ฐ์ด ์ค์ฌ์ธ ๊ณต๊ฐ
์๋๊ณต๊ฐ: ๊ฒ์ ๋ด ์๋์ ์์ ์ด ์ค์ฌ์ธ ๊ณต๊ฐ
๋ทฐํ๋ ฌ: ์๋๊ณต๊ฐ์ ์ ์ ์ ์นด๋ฉ๋ผ ๊ณต๊ฐ์ผ๋ก ๋ณํํ ๋(์นด๋ฉ๋ผ์ ์๋์ ์ธ ์์น๋ก ์ฎ๊ธธ๋) ๊ณฑํด์ฃผ๋ ํ๋ ฌ
์นด๋ฉ๋ผ ๊ณต๊ฐ: ์นด๋ฉ๋ผ์ ์์น์ ๋ฐฉํฅ์ด ์ธ์์ ์ค์ฌ์ธ ๊ณต๊ฐ.ย
ํฌ์ํ๋ ฌ: ์นด๋ฉ๋ผ ๊ณต๊ฐ์ ์์นํ ์ ์ ์ ํด๋ฆฝ ๊ณต๊ฐ์ผ๋ก ์ฎ๊ธธ ๋ ๊ณฑํด์ฃผ๋ ํ๋ ฌ
ํด๋ฆฝ๊ณต๊ฐ: ์นด๋ฉ๋ผ๊ฐ ๋ณด๋ ์์ญ์ด๋ฉฐ ์นด๋ฉ๋ผ์ ์์ ์ ๋ฐ์ํ๋ฏ๋ก ์์ผ์ ์๊ทผ๊ฐ์ด ์กด์ฌํ๋ค.
๋ทฐํฌํธ: ์นด๋ฉ๋ผ๊ฐ ๋ณด๋ ์์ญ. ์ด๋ฅผ ์ง์ก๋ฉด์ฒด๋ก ์์ถํ๊ณ ํด๋ฆฌํ ํ๊ฒ์ด ํด๋ฆฌํ ํ๊ฒ์ด NDC์ด๋ค
ํด๋ฆฌํ: ๋ทฐํฌํธ์ ์กํ์ง ์๋ ์์ญ์ ์๋ผ๋ด๋ ์ฒ๋ฆฌ
NDC: ์ ๊ทํ๋ ๊ธฐ๊ธฐ ์ขํ๊ณ. ๊ณต๊ฐ์ ๋ชจ๋ xyz๋ฒ์๊ฐ -1~1๊ณผ 0~1๋ก ์ ๊ทํ๋ ์ขํ๊ณ์ด๋ค.
ํด๋ฆฝ๊ณต๊ฐ ์ธ๋ถ์ ์ขํ๋ฅผ ์๋ผ๋ด๊ณ ๋์์ขํ๊ณ๋ฅผ w๋๋๊ธฐํ์ฌ 3์ฐจ์์ผ๋ก ๋ณํํ์ฌ ์์ฑ
ํด๋ฆฝ๊ณต๊ฐ๊ณผ NDC๋ ๋ทฐํฌํธ๋ฅผ ํด๋ฆฌํํ๊ณ xyz๋ฒ์๋ฅผ -1~1๊ณผ 0~1๋ก ์ ๊ทํํ ๊ณต๊ฐ์ด๋ผ๋ ์ ์์ ๊ฐ์ง๋ง,
ํด๋ฆฝ๊ณต๊ฐ์ ๊ณ์ฐํธ์๋ฅผ ์ํด 4์ฐจ์์, NDC๋ ์ด๋ฅผ 3์ฐจ์์ผ๋ก ๋ณํํ๊ฒ์ด๋ค
NearClip: ๋ทฐํฌํธ์ ์กํ์ง ์๋ ๊ฐ๊น์ด ์ด๋ฉฐ ํด๋ฆฌํ ์ ์๋ ค๋๊ฐ๋ค
FarClip: ๋ทฐํฌํธ์ ์กํ์ง ์๋ ๋จผ ๊ณต๊ฐ์ด๋ฉฐ ํด๋ฆฌํ ์ ์๋ ค๋๊ฐ๋ค.
Frustum: ํผ๋ผ๋ฏธ๋์ ๋จธ๋ฆฌ ๋ถ๋ถ์ ์๋ผ๋ธ ๋ชจ์ต์ ๋ํ์ผ๋ก, ๋ทฐํฌํธ์ ํํ๊ฐ ์ด ๋ํ๊ณผ ๋น์ทํ๋ฏ๋ก(์ง๊ต ์นด๋ฉ๋ผ๋ ์ง์ก๋ฉด์ฒด) Frustrum์ด๋ผ ๋ถ๋ฅธ๋ค.
๋์คํฐ๋ผ์ด์ : ์ ๋ฌ๋ฐ์ ์ ์ ๋ค๋ก ์ผ๊ฐํ์ ๋ง๋ค๊ณ , ๊ทธ ์ผ๊ฐํ์ ์ฑ์ฐ๋ ํ๋๊ทธ๋จผํธ๋ฅผ ๋ง๋ค์ด ํ๋๊ทธ๋จผํธ ์
ฐ์ด๋์ ๋๊ฒจ์ฃผ๋ ์์
.
์ ์ ์ปฌ๋ฌ, uV์ขํ, ๋
ธ๋ง ๋ฑ ๋ค๋ฅธ ์ ์ ์์ฑ๋ ๋ณด๊ฐ
์ค์บ๋ณํ: ํ๋ฆฌ๋ฏธํฐ๋ธ(์์์ ์ธ ๋ํ)์ ์ด๋ฃจ๋ ํ๋๊ทธ๋จผํธ๋ฅผ ์์ฑํ๋ ์ฒ๋ฆฌ
ํ๋๊ทธ๋จผํธ: ์ ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ฑ์ฐ๋ ๊ฐ ํฝ์
ํ๋ณด. ํ์ฌ ์์ฑ๋ ํ๋๊ทธ๋จผํธ๊ฐ ๋ค๋ฅธ ํ๋๊ทธ๋จผํธ์ ๊ฒฝ์ํ์ฌ ์ฑ์ฉ๋์ง ๋ชปํ๊ณ ํ๋ฝํ ์ ์๋ค
ํ๋๊ทธ๋จผํธ ์
ฐ์ด๋: ์ ๋ฌ๋ฐ์ ํ๋๊ทธ๋จผํธ์ ์ด๋ค ์์ ์ฑ์ธ์ง ๊ฒฐ์ ํ๋ค.ย
๋์คํฐ๋ผ์ด์ ๊ฐ ์ ๋ฌํ ํ๋๊ทธ๋จผํธ ์๋งํผ ์คํํ๋ค. ํ๋๊ทธ๋จผํธ ์
ฐ์ด๋์ ์ถ๋ ฅ๊ฐ์ ํ๋ ์ ๋ฒํผ์ ์ฐ์ฌ์ง ์ปฌ๋ฌ๊ฐ๊ณผ ๊น์ด๊ฐ
์ถ๋ ฅ๋ณํฉ: ์ํ๊ฐ๊ณผ ๊น์ด๊ฐ์ ํตํด ํ๋๊ทธ๋จผํธ๋ค์ ๊ฒฝ์ํ์ฌ ์์ ์ ํ๊ฑฐ๋ ํฉ์น๋ ์์
ํ๊ธฐํ๊ฑฐ ๊ทธ๋ฅ ์ฌ๋ ค๋ด.. ํ๋ฆฐ๊ฑฐ ์์ผ๋ฉด ์๋ ค์ฃผ๋ผ
ํ๊ธ๋จ์ด๋ณด๋จ ์์ด๋จ์ด๋ก ๊ธฐ์ตํ๋๊ฒ๋์. ๋ ํผ๋ฐ์ค๊ฐ ๊ฑฐ์ง ๋๋ถ๋ถ ์์ด๋ผ
๋ฒํ ์ค ์ ฐ์ด๋๊ฐ ๋๋ฒ ๋์์ด์
์๋ํ๋ ฌ์ ๋ชจ๋ธํ๋ ฌ์ด๋ผ ๋ถ๋ฆ? ์๋ํ๋ ฌ์ด๋ผ๊ธฐ๋ณด๋ค ๋ก์ปฌํ๋ ฌ์ ์๋ฏธ๊ฐ ๋ ๊ฐ๊น๊ฒ ๋๊ปด์ง๋ค
์๋ํ๋ฉด ๋ชจ๋ ๋ชจ๋ธ์ด ์ ๋ถ ๋ก์ปฌ์ขํ๋ ์๋๊ธฐ ๋๋ฌธ์. ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํด์ ๋ก๋ํ ๋์ ์น๋ค ๋ก์ปฌ์ ์๋ค๊ณ ๊ฐ์ฃผํ ์ ์๊ฑฐ๋ .
์๋๋ ๋ชจ๋ธ to ์๋ ํ๋ ฌ์ด๋ผ ๋ถ๋ฅด๋๋ฐ, ๊ทธ๊ฑฐ ๋งํ๋๊ฑฐ์. ๋ ๋ก์ปฌ ํ๋ ฌ์ด๋ผ๊ณ ๋ง ํ๋ฉด ๋ฐ์ดํฐ๋ง๋ค ๋ก์ปฌ์ด ์๋ฏธํ๋๊ฒ ๋ค ๋ค๋ฅผ์ ์์ด์ ๊ทธ๋ ๊ธด ํจ.
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ทธ๋ฅ ์์ฆ์ ๋ ๋๋ง ํ์ดํ๋ผ์ธ์์ ํ๋ก๊ทธ๋๋จธ๋ธํ ๊ฒ๋ค์ ์์ด๋๋ก ํ์น ์ ์๋๋ฏ.
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์์ ๋ณด๋ ํฝ์ ์์ด๋์์ ์ฐ์ฐํ์ง ์์?
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ฐ์ ๊ทธ๋๋ก ๋ฐ์์ ์๊ฑด๋ฐ ์ฃ.. - dc App
ํน์ ๋ค์ ์ ๋ฆฌํด์ฃผ์ค ์ ์๋์? ์ ๋ ์ด๋ณด๋ผ ใ ใ