Plane_uv - miniRT-jiphyeonjeon/MiniRT GitHub Wiki
3์ฐจ์ ๊ณต๊ฐ์์ ํํ๋๊ธด ํ์ง๋ง, ์ฌ์ค plane์ ๊ทธ ์์ฒด๋ก ์ด๋ฏธ 2์ฐจ์์ด๋ค.
๋ฐ๋ผ์ ํ๋ฉด์์์ ๊ฐ๋ก์ถ๊ณผ ์ธ๋ก์ถ์ ๊ฐ์ 1์ ๊ธฐ์ค์ผ๋ก fmodํด์ฃผ๋ฉด uv map ๊ณ์ฐ์ด ๋๋๋ค.
๋์ 3์ฐจ์์ด๊ธฐ ๋๋ฌธ์ ์ค๊ฐ๋จ๊ณ์์ ๊ณ์ฐ์ด ํ์ํ ์ ๋ฐ์ ์๋๋ฐ, ๋ฐ๋ก normal vector๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ฉด์ u, v ๋ฐฉํฅ vector๋ฅผ ์ ํด์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
ํ๋ฉด์ด x, y, z์ถ์ ์ธ์ ๋ ํํํ ํ๋ฉด์ผ๋ก ์กด์ฌํ์ง๋ ์๊ธฐ์ ์นด๋ฉ๋ผ ์ขํ๊ณ๋ฅผ ๊ณ์ฐํ ๊ฒ๊ณผ ๋์ผํ๊ฒ ๋ ๋ฒ ์ธ์ ํด์ฃผ๋ ๊ฒ์ผ๋ก ํ๋ฉด ๊ธฐ์ค์ u, v vector๋ฅผ ๊ตฌํด์ค๋ค.
์นด๋ฉ๋ผ ์ขํ๊ณ์์ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ์ ํ๋ ์ ํด์ ์ฌ์ฉํ์ผ๋, ์ฌ๊ธฐ์์๋ (1, 0, 0)์ ์ด์ฉํด ๊ณ์ฐํด์ฃผ์.
(๋ง์ฐฌ๊ฐ์ง๋ก normal vector๊ฐ ์ด ๊ฐ๊ณผ ํํํ๋ค๋ฉด (0, 0, 1) ๋ฑ์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ ๊ณ์ฐํ์.)
์ด๋ ๊ฒ u, v์ถ์ด ๊ตฌํด์ง๋ฉด ์์์ ์ p์์ ๊ฐ ์ถ์ผ๋ก ์ ์ฌ์๋ ๊ธธ์ด์ธ ๋ด์ ๊ฐ์ ์ด์ฉํด uv map์์ ์ฌ์ฉํ ์ขํ๋ฅผ ๊ณ์ฐํ๋ฉด ๋๋ค.