๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ Development Study83

World View Projection ๋ณ€ํ™˜ ์˜ˆ์ œ :) https://github.com/eazuooz/YamYamEngine/commit/5746341cee3f322346b6f0f90fb69db6e121ce48#diff-4da099d09d596674ef3104953885d51bd55ca72a394800f0a83f9a457cd5e3de View, Projection Matrix · eazuooz/YamYamEngine@5746341 Show file tree Showing 23 changed files with 385 additions and 117 deletions. github.com 3์ฐจ์› ๊ณต๊ฐ„์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. Z๊ฐ’์ด ๋ชจ๋‹ˆํ„ฐ ๋’ค์ชฝ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์™ผ์† ์ขŒํ‘œ๊ณ„์™€ z๊ฐ’์ด ๋ชจ๋‹ˆํ„ฐ ์•ž์ชฝ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์˜ค๋ฅธ์† ์ขŒํ‘œ๊ณ„์ด๋‹ค. ํ•˜๋‚˜์˜ .. 2023. 1. 11.
์Šค๋งˆํŠธ ํฌ์ธํ„ฐ C++ ํ”„๋กœ๊ทธ๋žจ์—์„œ new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์œผ๋กœ ํ• ๋‹น ๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ๋Š”, ๋ฐ˜๋“œ์‹œ delete ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด์ œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. C++์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ (memory leak)์œผ๋กœ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ(smart pointer)๋ž€ ํฌ์ธํ„ฐ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ์œผ๋กœ, ์‚ฌ์šฉ์ด ๋๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•ด ์ค๋‹ˆ๋‹ค. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์˜ ๋™์ž‘ ๋ณดํ†ต new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ธฐ๋ณธ ํฌ์ธํ„ฐ๊ฐ€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์ดˆ๊ธฐํ™”ํ•œ ํ›„์—, ๊ธฐ๋ณธ ํฌ์ธํ„ฐ๋ฅผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์— ๋Œ€์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ •์˜๋œ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์˜ ์ˆ˜๋ช…์ด ๋‹คํ•˜๋ฉด ์†Œ๋ฉธ์ž๋Š”, deleteํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ new ํ‚ค์›Œ๋“œ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ์ฃผ์†Œ๊ฐ’์„ ์Šค๋งˆ.. 2023. 1. 3.
๋ฒกํ„ฐ์˜ ์™ธ์  ์™ธ์ ์˜ ๊ฒฐ๊ณผ๋Š” ์–ธ์ œ๋‚˜ 3์ฐจ์› ๋ฒกํ„ฐ๊ฐ€ ๋œ๋‹ค. ์ด๋Š” ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ์Šค์นผ๋ผ๋กœ ๋‚˜์˜ค๋Š” ๋‚ด์ ๊ณผ ๋Œ€๋น„๋œ๋‹ค. ์™ธ์  ๊ณ„์‚ฐ์‹์˜ ํŒจํ„ด์€ x์„ฑ๋ถ„์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ x์™€ ๊ด€๋ จ์—†๋Š” ๋‚˜๋จธ์ง€ ๋‘ ์„ฑ๋ถ„ Y, z ๋ฅผ ๊ฒฐํ•ฉํ•ด ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‚˜๋จธ์ง€ y, z๋ฅผ ๋งŒ๋“ค๋–„๋„ ๋™์ผํ•˜๋‹ค. ์™ธ์ ์€ ๊ตํ™˜ ๋ฒ•์น™์ด ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋บ„์…ˆ์—์„œ ๋‘ ์ˆ˜์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์–ด์„œ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์™ธ์ ๋„ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ฉด ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์˜ ๋ฒกํ„ฐ๊ฐ€ ๋‚˜์˜จ๋‹ค. U x V = -V x U ์™ธ์ ์€ ๊ฒฐํ•ฉ๋ฒ•์น™๋„ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋ง์…ˆ์— ๋Œ€ํ•œ ๋ถ„๋ฐฐ๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•œ๋‹ค. U x (V + W) = U x V + U x W ๋‚ด์  ์™ธ์  ๊ณ„์‚ฐ ๊ฒฐ๊ณผ ์Šค์นผ๋ผ ๋ฒกํ„ฐ ๊ตํ™˜ ๋ฒ•์น™ O X ๊ฒฐํ•ฉ ๋ฒ•์น™ X X ๋ถ„๋ฐฐ ๋ฒ•์น™ O O ์—ฐ์‚ฐ ๋ฐฉ๋ฒ• ๊ฐ™์€ ์š”์†Œ ์‚ฌ์šฉ ๋‹ค๋ฅธ ์š”์†Œ ์‚ฌ์šฉ ์ด๋ ‡๊ฒŒ ์„œ๋กœ ๋Œ€๋ฆฝ๋˜๋Š” ๋‚ด์ ๊ณผ ์™ธ์ .. 2023. 1. 2.
์‹œ์•ผ ํŒ๋ณ„ (์•ž๋’ค ํŒ๋ณ„) 2023. 1. 2.
๋ฒกํ„ฐ์˜ ๋‚ด์  ๋ฒกํ„ฐ์˜ ๋‚ด์ (dot product)์€ ๊ฐ™์€ ์ฐจ์›์˜ ๋‘ ๋ฒกํ„ฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋–„, ๋ฒกํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ์„ฑ๋ถ„์„ ๊ณฑํ•œ ํ›„ ์ด๋“ค์„ ๋”ํ•ด ์Šค์นผ๋ผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์—ฐ์‚ฐ์ด๋‹ค. ๋‚ด์ ์€ ๊ณฑ์…ˆ ๊ธฐํ˜ธ์™€ ๋™์ผํ•œ ๊ฐ€์šด๋ฐ ์ (•)์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋‚ด์ ์€ ์Šค์นผ๋ผ์˜ ๊ณฑ์…ˆ๊ณผ ๋ง์…ˆ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๊ตํ™˜ ๋ฒ•์น™์ด ์„ฑ๋ฆฝ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ๋ฒกํ„ฐ๊ฐ€ ์•„๋‹Œ ์Šค์นผ๋ผ๋กœ ๋‚˜์˜ค๋Š” ์„ฑ์งˆ๋กœ ์ธํ•ด ๊ฒฐํ•ฉ๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‚ด์ ์€ ๋ค์…ˆ์— ๋Œ€ํ•œ ๋ถ„๋ฐฐ๋ฒ•์น™์ด ์„ฑ๋ฆฝ๋œ๋‹ค. ๊ฐ™์€ ๋ฒกํ„ฐ๋ฅผ ๋‚ด์ ํ•˜๋ฉด ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์ œ๊ณฑํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋‚ด์ ์˜ ์„ฑ์งˆ์€ ๋ชจ๋“  ์ฐจ์›์˜ ๋ฒกํ„ฐ์—์„œ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋œ๋‹ค. ๋ฒกํ„ฐ์˜ ๋‚ด์ ์€ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋‘ ๋ฒกํ„ฐ์˜ ์‚ฌ์ž‡๊ฐ์— ๋Œ€ํ•œ cosํ•จ์ˆ˜์™€ ๋น„๋ก€ํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ์œ„์ฒ˜๋Ÿผ ์„ ์„ ๊ทธ์–ด ์ง๊ฐ์‚ผ๊ฐํ˜• 2๊ฐœ๋ฅผ ๋งŒ๋“ค๋ฉด b์˜ ๊ธธ์ด๋Š” ๋ฐ‘๋ณ€ 2๊ฐœ์˜ ํ•ฉ์ด ๋œ๋‹ค. ์ œ 2 ์ฝ”.. 2023. 1. 2.
์‚ผ๊ฐํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ๋ฒกํ„ฐ์˜ ํšŒ์ „ 2023. 1. 2.