Positionable_camera - miniRT-jiphyeonjeon/MiniRT GitHub Wiki

์นด๋ฉ๋ผ๋ ๊ธฐ๋ณธ ์ขํ๊ณ์ ๋ค๋ฅธ ์์ฒด ์ขํ๊ณ๋ฅผ ๊ฐ์ง๋ค.
.rt ํ์ผ์์ ๋ฐ๋ ์นด๋ฉ๋ผ๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ์ ๊ธฐ์ค์ผ๋ก, ๋ฐ๋๋ฐฉํฅ์ผ๋ก ํํ๋๋ w์ถ์ ๋ง๋ค์ด์ฃผ์.
์ด w์ถ์ด ์นด๋ฉ๋ผ ์ขํ๊ณ๋ฅผ ๋ง๋๋ ๊ธฐ๋ณธ ์ฌ๋ฃ๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ด๋ก์ ๋ฐฉํฅ๋ฒกํฐ t๋ ์นด๋ฉ๋ผ์ ์์ชฝ ๋ฐฉํฅ์ ์ ์ํ๋ ๊ธฐ๋ณธ๊ฐ์ด๋ค. (0, 1, 0)
์ฌ๋์ผ๋ก ๋น์ ํ๋ฉด 3์ฐจ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์์ ๋์ ๊ธฐ๋ณธ ๋จธ๋ฆฌ๋ฐฉํฅ์ด๋ผ๊ณ ํ ์ ์๋ค.
๋ง์ฝ w๊ฐ t์ ๊ฐ์ ๋ฐฉํฅ์ ๊ฐ์ง๊ฒ ๋๋ ์ํฉ์ด๋ผ๋ฉด, ์ธ์ ์ด 0์ด ๋๋ฒ๋ฆฌ๋ ์ฐธ์ฌ๊ฐ ์๊ธฐ๋ฏ๋ก ์ด ๋๋ t์ ๋ฐฉํฅ์ ์์ ํด์ฃผ์ด์ผ ํ๋ค.
๋น์ ํ์๋ฉด ์ฌ๋์ด ์๋ฅผ ์ณ๋ค๋ณด๊ธฐ ์ํด ๊ณ ๊ฐ๋ฅผ ๋ค๋ฉด ๋จธ๋ฆฌ์ ๋ฐฉํฅ์ด ๋ฐ๋๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค.
(0, 0, 1)๊ณผ ๊ฐ์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ ์ขํ๊ณ๋ฅผ ๊ณ์ฐํด์ฃผ๋ฉด ์ด๋ ๋ฐฉํฅ์ด๋ ์นด๋ฉ๋ผ ์ขํ๊ณ๋ฅผ ๋ง๋ค์ด๋ผ ์ ์๋ค.
๊ณ์ฐ์ ๊ฐ๋จํ๋ค. w์ถ์ ๊ธฐ์ค์ผ๋ก ์ธ์ ํด์ฃผ๋ ๊ฒ์ด ๋!

์ฌ๊ธฐ์ ๋ชจ๋ ๋ฒกํฐ๋ ๋จ์๋ฒกํฐ๋ก ๊ณ์ฐ๋์ด์ผ ํ๋ค๋ ์ฌ์ค์ ์์ง ๋ง์.
์นด๋ฉ๋ผ ํ๊ฐ์ ๋ง ๊ทธ๋๋ก ๋ณผ ์ ์๋ ์์ญ(๊ฐ๋)๋ฅผ ์๋ฏธํ๋ค.
minirt์์๋ ์ด ๊ฐ๋๋ฅผ ์ํ๋ฐฉํฅ์ผ๋ก ์ ์ฉํ๊ณ ์๋ค.
-w ๋ฐฉํฅ์ ๋น์ถ๋ ์นด๋ฉ๋ผ๋ฅผ ์๋ก ๋ค๋ฉด, ์ํ๋ฐฉํฅ์ผ๋ก ๋ณผ ์ ์๋ ๋ฒ์๋ tan(๐ฑ / 2)๋ก ๊ณ์ฐํ ์ ์๋ค.
์ด๋ฅผ ์์ชฝ์ ์ ์ฉํด์ 2๋ฅผ ๊ณฑํ ๊ฐ์ด ์ต์ข ํญ์ด ๋๋ค.
์ด ๊ฐ๊ณผ ์์์ ๊ตฌํ ์นด๋ฉ๋ผ ์ขํ๊ณ๋ฅผ ์ข ํฉํด๋ณด๋ฉด ์นด๋ฉ๋ผ๊ฐ ์์์ ์์น, ์์์ ๋ฐฉํฅ์ ๋ฐ๋ผ๋ณด๊ณ ์๋ ์ํฉ์ ์ฝ๋๋ก ๊ตฌํํ ์ ์๊ฒ ๋๋ค!