Sphere_uv - miniRT-jiphyeonjeon/MiniRT GitHub Wiki

Texture Coordinate for Sphere (๊ตฌ๋ฉด์ขŒํ‘œ๊ณ„)

Screen Shot 2022-04-13 at 5 47 28 PM

์ž„์˜์˜ ํ•œ ์  P๋ฅผ (x, y, z)๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์ง๊ต์ขŒํ‘œ๊ณ„๋ผ๊ณ  ํ•˜๊ณ , (r, ๐žฑ, ฯ†)๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ตฌ๋ฉด์ขŒํ‘œ๊ณ„๋ผ๊ณ  ํ•œ๋‹ค.

๋ณ€์ˆ˜ ์„ค๋ช…
r ๊ตฌ์˜ ๋ฐ˜์ง€๋ฆ„
๐žฑ y์ถ•๊ณผ ์  P๊ฐ€ ์ด๋ฃจ๋Š” ๊ฐ
ฯ† zxํ‰๋ฉด์— ์‚ฌ์˜๋œ ์ ๊ณผ z์ถ•์ด ์ด๋ฃจ๋Š” ๊ฐ

์ด ๊ตฌ๋ฉด์ขŒํ‘œ๊ณ„๋ฅผ ์ด์šฉํ•˜๋ฉด, 2์ฐจ์› ์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

[0, 1]๊นŒ์ง€๋กœ ํ‘œํ˜„๋˜๋Š” uv map์œผ๋กœ ๊ตฌ๋ฅผ ํฌ์žฅํ•ด์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.


๊ฐ€๋กœ์ถ•์— ํ•ด๋‹นํ•˜๋Š” u์˜ ๊ฒฝ์šฐ ฯ†๋ฅผ ๋”ฐ๋ผ 360ยฐ๋ฅผ ์™„์ „ํžˆ ๊ฐ์‹ธ์ฃผ๊ฒŒ ๋˜๊ณ ,

์„ธ๋กœ์ถ•์— ํ•ด๋‹นํ•˜๋Š” v์˜ ๊ฒฝ์šฐ ๐žฑ๋ฅผ ๋”ฐ๋ผ ์œ„์•„๋ž˜ 180ยฐ๋ฅผ ๊ฐ์‹ธ์ฃผ๊ฒŒ ๋œ๋‹ค.

์ด๋ฅผ ์•„๋ž˜ ์‹ (1)๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Screen Shot 2022-04-06 at 5 20 55 PM



์ง๊ต์ขŒํ‘œ๊ณ„์™€ ๊ตฌ๋ฉด์ขŒํ‘œ๊ณ„์˜ ๋ณ€ํ™˜์‹(2)~(4)์„ ์ด์šฉํ•ด์„œ ฯ†์™€ ๐žฑ๋ฅผ x, y, z๋กœ ๋‚˜ํƒ€๋‚ด๋ณด์ž.

์ด ๋•Œ, unit vector๋ฅผ ์ด์šฉํ•  ์˜ˆ์ •์ด๋ผ ๋ฐ˜์ง€๋ฆ„ r = 1์ด ๋˜๋ฉด์„œ ์ƒ๋žตํ–ˆ๋‹ค.

Screen Shot 2022-04-06 at 5 21 07 PM



u๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ฯ† ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‹ (2)์™€ (4)๋ฅผ ๋ณด๋ฉด, ๋˜‘๊ฐ™์ด ์žˆ๋Š” sin๐žฑ๋ฅผ ์†Œ๊ฑฐํ•˜๊ณ  ์‹ถ์–ด์ง„๋‹ค.

๋™์‹œ์—, cos๊ณผ sin์˜ ๋ถ„์ˆ˜ ์กฐํ•ฉ์ด๋ฉด tan๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ z์— -x๋ฅผ ๋‚˜๋ˆ ์ฃผ๋„๋ก ํ•˜์ž.

Screen Shot 2022-04-06 at 5 21 26 PM



<math.h>์—์„œ ์ œ๊ณตํ•˜๋Š” tan์˜ ์—ญํ•จ์ˆ˜๋กœ atan(), atan2()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,

์ด ๋•Œ atan()์˜ ๊ฒฐ๊ณผ ๋ฒ”์œ„๋Š” [-ฯ€/2, ฯ€/2]์ด๊ณ  atan2()์˜ ๊ฒฐ๊ณผ ๋ฒ”์œ„๋Š” [-ฯ€, ฯ€]์ด๋‹ค. (์ฐธ๊ณ )

u๊ฐ€ [0, 1]์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ฯ†์˜ ๋ฒ”์œ„๋„ [0, 2ฯ€]๊ฐ€ ๋˜๋„๋ก ์‹์„ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๋ฒ”์œ„๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” TheNextWeek์—์„œ ์†Œ๊ฐœํ•œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ–ˆ๋‹ค.

Screen Shot 2022-04-06 at 5 21 36 PM



์‹ (6)์— (7)์„ ์ ์šฉํ•ด์ฃผ๋ฉด, [0, 2ฯ€] ๋ฒ”์œ„์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ฯ†๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Screen Shot 2022-04-06 at 5 21 43 PM



๐žฑ๋Š” ์‹ (3)์—์„œ cos์˜ ์—ญํ•จ์ˆ˜๋กœ ์•„์ฃผ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฒ”์œ„๋„ ์ด๋ฏธ [0, ฯ€]๋ผ์„œ ๋ณด์ •ํ•  ํ•„์š”๋„ ์—†๋‹ค!

Screen Shot 2022-04-06 at 5 21 53 PM



์ด๋ ‡๊ฒŒ ๊ตฌํ•œ ๊ฐ’๋“ค์„ ์‹ (1)์— ๋„ฃ์–ด์ฃผ๋ฉด 3์ฐจ์› ๊ตฌ๋ฅผ 2์ฐจ์› uv map์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ