Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1099)

KoreanFoodie's Study

4-4. ์‹œ๊ฐ„ ์ธก์ •๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ (ํƒ€์ด๋จธ, GameTimer ํด๋ž˜์Šค)

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-4. ์‹œ๊ฐ„ ์ธก์ •๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ (ํƒ€์ด๋จธ, GameTimer ํด๋ž˜์Šค) ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : 1. ์„ฑ๋Šฅ ํƒ€์ด๋จธ ์ •๋ฐ€ํ•œ ์‹œ๊ฐ„ ์ธก์ •์„ ์œ„ํ•ด, ์ด ์ฑ…์˜ ์˜ˆ์ œ๋“ค์€ Windows๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ฑ๋Šฅํƒ€์ด๋จธ(perfomance timer)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ ์„ฑ๋Šฅ ์นด์šดํ„ฐ(performance counter)๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค(Windows.h ๋ฅผ include). ์„ฑ๋Šฅ ํƒ€์ด๋จธ์˜ ์‹œ๊ฐ„ ์ธก์ • ๋‹จ์œ„๋Š” '์ง€๋‚˜๊ฐ„ ํด๋Ÿญ ํ‹ฑ(tick)'๋“ค์˜ ๊ฐœ์ˆ˜(count)์ด๋‹ค. ์„ฑ๋Šฅ ํƒ€์ด๋จธ๋กœ๋ถ€ํ„ฐ ํ‹ฑ ์ˆ˜ ๋‹จ์œ„์˜ ํ˜„์žฌ ์‹œ๊ฐ„์„ ์–ป์„ ๋•Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด QueryPerformanceCounter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. __int64 currTim..

Game Dev/DirectX 2021. 11. 18. 15:06
4-3. Direct3D ์ดˆ๊ธฐํ™” (ID3D12Device, Fence, 4X MSAA ์ ๊ฒ€ ๋“ฑ)

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-3. Direct3D ์ดˆ๊ธฐํ™” (ID3D12Device, Fence, 4X MSAA ์ ๊ฒ€ ๋“ฑ) Direct3D ์ดˆ๊ธฐํ™” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 1. D3D12CreateDevice ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ID3D12Device๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 2. ID3D12Fence ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„œ์ˆ ์ž๋“ค์˜ ํฌ๊ธฐ๋ฅผ ์–ป๋Š”๋‹ค 3. 4X MSAA(Multisample anti-aliasing) ํ’ˆ์งˆ ์ˆ˜์ค€ ์ง€์› ์—ฌ๋ถ€๋ฅผ ์ ๊ฒ€ํ•œ๋‹ค. 4. ๋ช…๋ น ๋Œ€๊ธฐ์—ด๊ณผ ๋ช…๋ น ๋ชฉ๋ก ํ• ๋‹น์ž, ๊ทธ๋ฆฌ๊ณ  ์ฃผ ๋ช…๋ น ๋ชฉ๋ก์„ ์ƒ์ƒํ•œ๋‹ค. 5. ๊ตํ™˜ ์‚ฌ์Šฌ์„ ์„œ์ˆ ํ•˜๊ณ  ์ƒ์„ฑํ•œ๋‹ค. 6. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ์„œ์ˆ ์ž ํž™๋“ค์„ ์ƒ์„ฑํ•œ๋‹ค. 7. ํ›„๋ฉด ..

Game Dev/DirectX 2021. 11. 17. 14:52
4-2. Direct3D ๊ธฐ์ดˆ : CPU์™€ GPU์˜ ์ƒํ˜ธ์ž‘์šฉ , ๋ช…๋ น ๋Œ€๊ธฐ์—ด, CPU/GPU ๋™๊ธฐํ™”

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-2. Direct3D ๊ธฐ์ดˆ : CPU์™€ GPU์˜ ์ƒํ˜ธ์ž‘์šฉ , ๋ช…๋ น ๋Œ€๊ธฐ์—ด, CPU/GPU ๋™๊ธฐํ™” ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : ๋ช…๋ น ๋Œ€๊ธฐ์—ด๊ณผ ๋ช…๋ น ๋ชฉ๋ก CPU๋Š” GPU์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ๊ทธ๋ž˜ํ”ฝ์„ ๊ทธ๋ ค์ค€๋‹ค. ์šฐ๋ฆฌ๋Š” GPU์™€ CPU๊ฐ€ ๊ฐ๊ฐ ์‰ฌ์ง€ ์•Š๊ณ  ์—ด์‹ฌํžˆ ์ผํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. CPU/GPU ์‚ฌ์ด์—๋Š” ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ๋™๊ธฐํ™”๋Š” ๋ณ‘๋ ฌ์„ฑ์„ ๋ง์น  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋ช…๋ น ๋Œ€๊ธฐ์—ด์ด ๊ฝ‰ ์ฐจ CPU๊ฐ€ ๋†€๊ฑฐ๋‚˜ ๋ช…๋ น ๋Œ€๊ธฐ์—ด์ด ๋น„์–ด ์žˆ์–ด GPU๊ฐ€ ๋…ธ๋Š” ์ƒํ™ฉ์€ ๋ฐฉ์ง€ํ•ด์•ผ ํ•œ๋‹ค. Direct3D 12์—์„œ ๋ช…๋ น ๋Œ€๊ธฐ์—ด์„ ๋Œ€ํ‘œํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ID3D12CommandQueue์ด๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋Œ€๊ธฐ์—ด์„ ์„œ์ˆ ํ•˜..

Game Dev/DirectX 2021. 11. 17. 09:41
๊ทธ๋†ˆ์˜ ๋ง›์ง‘์ด ๋„๋Œ€์ฒด ๋ญ๊ธธ๋ž˜, ๊ทธ๋Ÿฐ๋ฐ ์ด์ œ ์˜์‹์˜ ํ๋ฆ„์„ ๊ณ๋“ค์ธ...

Memento Mori ๋‹น์‹ ์ด '์ง„์งœ ๋ง›์ง‘'์„ ์ฐพ๋Š”๋‹ค๋ฉด ๊ธฐ์–ตํ•ด์•ผ ํ•  ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. ํ•œ๊ตญ์ธ์€ ๊ฐ์„ฑ์— ๋ฏธ์ณ์žˆ๋‹ค. 2. ๊ธฐ๋Œ€ํ•˜๋ฉด ์‹ค๋งํ•œ๋‹ค. ๊ฐ์„ฑ์ด ์ง„์งœ ๋ญ๊ธธ๋ž˜. ์‚ฌ๋žŒ๋“ค์€ ์™œ ๋ณ„ ๊ฑฐ ์•„๋‹Œ ๋ฐ€๊ฐ€๋ฃจ ๋ฉ์–ด๋ฆฌ์— ๋ˆ์„ ๋‚ด๋˜์ง€๋Š” ๊ฑธ๊นŒ. ๋น„์Šทํ•œ ์Œ์‹์ด๋ผ๋„ ์ ‘์‹œ์˜ ๊ตด๊ณก์— ๋ชธ๊ฐ’์ด ์™œ ๊ทธ๋ฆฌ ๋‹ฌ๋ผ์ง€๋Š” ๊ฑธ๊นŒ. ์•„, ๋ฌผ๋ก  ๊ณผํ•˜์ง€ ์•Š์€ ์€์€ํ•œ ์กฐ๋ช…์ด ๋น ์ ธ์„œ๋Š” ์•ˆ๋˜๊ฒ ๋‹ค. ๊ฐ์„ฑ์ด๋ž€ ๊ฒŒ ์ฐธ ์˜ค๋ฌ˜ํ•˜๋‹ค. ํ•ฉ๋ฆฌ์ ์œผ๋กœ๋Š” ๋‹น์ตœ ์ดํ•ดํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋œจ๋ˆํ•œ ๊ตญ๋ฐฅ์„ ๋จน๊ณ  '์•„ ์ข‹๋‹ค~'๋ฅผ ์™ธ์น˜๋Š” ์•„์žฌ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ ๋‚˜์—๊ฒŒ ๋‚จ์€ ์„ ํƒ์ง€๋Š” ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๊ฐ์„ฑ์ด๋ผ๋Š” ๊ฐœ๋…์„ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์ˆ˜์šฉํ•˜๋Š” ๊ฒƒ ๋ฟ์ด๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๊ฐ์ƒ์„ ๋ฌผ์–ด๋ณด๋ฉด ๋จผ ์‚ฐ์„ ๋ฐ”๋ผ๋ณด๋“ฏ ์‹œ์„ ์„ ๋Œ๋ฆฌ๋ฉฐ ๋ฏธ์†Œ๋ฅผ ์ง“๋Š” ๊ฒƒ ๋ฐ–์—. ๋ถ„์œ„๊ธฐ๋ฅผ ๊นจ๊ณ  ์‹ถ์ง€๋Š” ์•Š์œผ๋‹ˆ๊นŒ. ...๋ผ๊ณ  ๋งํ–ˆ์ง€๋งŒ, ์‚ฌ์‹ค ๋‚˜๋„ ์•„์˜ˆ ๊ฐ..

์žฌํ…Œํฌ / ํˆฌ์ž ์„œ์  ๋ฆฌ๋ทฐ : <๋ณด๋„ ์„€ํผ์˜ ๋ˆ> [๋ณด๋„ ์„€ํผ] (์žฌํ…Œํฌ, ๋ถ€์žํ•™, ๊ฒฝ์ œ์  ์ž์œ , ์ž์‚ฐ ๊ด€๋ฆฌ, ๋ˆ ๊ด€๋ฆฌ, ์ €์ถ•, ์ฃผ์‹, ๋ถ€๋™์‚ฐ, ํˆฌ์ž)

๊ฒฝ์ œ์  ์ž์œ ๋ฅผ ์œ„ํ•ด ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€๋“ค์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ์žฌํ…Œํฌ, ๋ถ€์žํ•™, ๊ฒฝ์ œ์  ์ž์œ , ์ž์‚ฐ ๊ด€๋ฆฌ, ๋ˆ ๊ด€๋ฆฌ, ์ €์ถ•, ์ฃผ์‹, ๋ถ€๋™์‚ฐ, ํˆฌ์ž ๋“ฑ์— ๊ด€์‹ฌ์ด ๋งŽ์€ ๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ์ฑ…์˜ ๊ฒฝ์šฐ, ์•ก๊ธฐ์Šค๋งŒ ๋ฝ‘์•„์„œ ์ „๋‹ฌํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. 1์žฅ : ์ด์ œ๋Š” ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ผ ๋ˆ์€ ์–ธ์ œ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๋ถ€์—ฌํ•˜๋Š” ๋งŒํผ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค. ๋ˆ ๋ฌธ์ œ๋กœ ๊ณค๋ž€์„ ๊ฒช๋Š” ๋™์•ˆ ๋ˆ์€ ํ•„์š” ์ด์ƒ ์ค‘์š”ํ•œ ๊ฒƒ์ด ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค. ๊ฐ€์น˜์™€ ๋ชฉํ‘œ๊ฐ€ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์šฐ๋ฆฌ๋Š” ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์—†๋‹ค. ๋‚™๊ด€์ฃผ์˜๋Š” ๋ชจ๋“  ์ผ์˜ ๊ธ์ •์ ์ธ ๋ฉด๋งŒ ๋ณด๊ฒŒ ํ•œ๋‹ค. ์ž์‹ ๊ฐ์€ ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋‘์šด ๋ฉด๊นŒ์ง€๋„ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ™•์‹ ์„ ์ค€๋‹ค. ์ž์‹ ๊ฐ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๊ณผ๊ฑฐ ๊ฒฝํ—˜์„ ํ† ๋Œ€๋กœ '๋‚˜๋Š” ๋ฌธ์ œ์—†์–ด' ๋ผ๊ณ  ์Šค์Šค๋กœ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ๊ฒฝ์ œ์  ์–ด๋ ค์›€์€..

์žฌํ…Œํฌ 2021. 11. 16. 18:49
4-1. Direct3D ๊ธฐ์ดˆ : COM, ํ…์Šค์ณ ํ˜•์‹, ๊ตํ™˜์‚ฌ์Šฌ๊ณผ ํŽ˜์ด์ง€ ์ „ํ™˜, ๊นŠ์ด ๋ฒ„ํผ๋ง, ๋‹ค์ค‘ ํ‘œ๋ณธํ™”, DXGI, ์ƒ์ฃผ์„ฑ

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-1. Direct3D ๊ธฐ์ดˆ : COM, ํ…์Šค์ณ ํ˜•์‹, ๊ตํ™˜์‚ฌ์Šฌ๊ณผ ํŽ˜์ด์ง€ ์ „ํ™˜, ๊นŠ์ด ๋ฒ„ํผ๋ง, ๋‹ค์ค‘ ํ‘œ๋ณธํ™”, DXGI, ์ƒ์ฃผ์„ฑ ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : COM(Component Object Model) COM์€ DirectX์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋…๋ฆฝ์„ฑ๊ณผ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. COM ๊ฐ์ฒด๋ฅผ C++ ํด๋ž˜์Šค๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” COM ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•จ์ˆ˜๋“ค๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๊ธฐ๋งŒ ํ•œ๋‹ค. (new๋กœ ์ƒ์„ฑํ•  ์ผ์ด ์—†๋‹ค๋Š” ๋œป์ด๋‹ค.) ๋˜ํ•œ delete๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ release๋ฅผ ํ†ตํ•ด ๋” ์ด์ƒ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ์„ ๋ช…์‹œํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ..

Game Dev/DirectX 2021. 11. 16. 11:40
3. ์„ ํ˜•๋ณ€ํ™˜, ์•„ํ•€๋ณ€ํ™˜, ์ขŒํ‘œ ๋ณ€ํ™˜, DirectXMath ๋ณ€ํ™˜ ํ•จ์ˆ˜

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 3. ์„ ํ˜•๋ณ€ํ™˜, ์•„ํ•€๋ณ€ํ™˜, ์ขŒํ‘œ ๋ณ€ํ™˜, DirectXMath ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : ์„ ํ˜•๋ณ€ํ™˜ ์„ ํ˜•๋ณ€ํ™˜์€ ๋ฒกํ„ฐ๋“ค ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ ์—ฐ์‚ฐ์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. u + v๋Š” ๋ฒกํ„ฐ๋ผ๋ฆฌ์˜ ํ•ฉ์ด๊ณ , k * v๋Š” ๋ฒกํ„ฐ v์— ์Šค์นผ๋ผ ๊ฐ’ k๋ฅผ ๊ณฑํ•œ scaling์ด๋‹ค. ํšŒ์ „ ๋ฒกํ„ฐ v๋ฅผ ์ถ• n์— ๋Œ€ํ•ด ์ตœ์ „ํ•œ๋‹ค๊ณ  ํ•˜์ž. ์ด๋Ÿฌํ•œ ๋ณ€ํ™˜์—์„œ ํšŒ์ „๊ฐ์€ n์„ ๋‚ด๋ ค๋‹ค๋ณด๋Š” ๋ฐฉํ–ฅ(์ฆ‰, n์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ)์„ ๊ธฐ์ค€์ด๋กœ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ์ธก์ •ํ•œ๋‹ค. ๋˜ํ•œ ||n|| = 1 ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์šฐ์„  v๋ฅผ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ•ดํ•œ๋‹ค. ํ•˜๋‚˜๋Š” n์— ํ‰ํ–‰ํ•œ ๋ถ€๋ถ„์ด๊ณ  ๋˜ ํ•˜๋‚˜๋Š” n์— ์ˆ˜์ง์ธ(์ง๊ต) ๋ถ€๋ถ„์ด๋‹ค. ํ‰ํ–‰ํ•œ ๋ถ€๋ถ„์€ ๊ทธ๋ƒฅ proj(v)์ด๋‹ค...

Game Dev/DirectX 2021. 11. 15. 21:06
2. DirectXMath ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ–‰๋ ฌ ๋‹ค๋ฃจ๊ธฐ

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 2. DirectXMath ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ–‰๋ ฌ ๋‹ค๋ฃจ๊ธฐ ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : ๊ฐ„๋‹จํ•œ ํ–‰๋ ฌ ์—ฐ์‚ฐ๋“ค (ํ–‰๋ ฌ์˜ ๊ณฑ, ์—ญํ–‰๋ ฌ, ์—ฌ์ธ์ˆ˜, Transpose, Cramer's Rule ๋“ฑ)์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์—ฌ๊ธฐ์—์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค. ๋ฒกํ„ฐ์™€ ํ–‰๋ ฌ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ์ฐธ๊ณ ํ•˜๋„๋ก ํ•˜์ž. ๋Œ€์‹  ๊ผญ ๊ธฐ์–ตํ•ด์•ผ ํ•  ๊ฒƒ ํ•œ ๊ฐ€์ง€๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ ค ํ•œ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ : ์—ญํ–‰๋ ฌ๊ณผ ํ–‰๋ ฌ์‹์˜ ๊ธฐํ•˜ํ•™์ ์ธ ์˜๋ฏธ ๋‘ ๋ฒกํ„ฐ๋กœ ์ด๋ฃจ์–ด์ง„ ํ–‰๋ ฌ์˜ ํ–‰๋ ฌ์‹(determinant)์€ ํ‰ํ–‰์‚ฌ๋ณ€ํ˜•์˜ ๋„“์ด์ด๋‹ค. ์ด๋Ÿฌํ•œ ํ‰ํ–‰์‚ฌ๋ณ€ํ˜•์„ ๋‹จ์œ„๋ฒกํ„ฐ ๋‘ ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž(Identity Matrix ๊ฐ™์€ ๋…€์„..

Game Dev/DirectX 2021. 11. 15. 15:18
๋ชจ๋˜ C++ ์ž…๋ฌธ 1 - C++ ๊ธฐ์ดˆ (์ดˆ๊ธฐํ™”, ๋ฆฌํ„ฐ๋Ÿด, ์˜ˆ์™ธ, ํฌ์ธํ„ฐ)

double square_root(double x) noexcept {...} '๋ชจ๋˜ C++ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋˜ C++ ์ž…๋ฌธ 1 - C++ ๊ธฐ์ดˆ (์ดˆ๊ธฐํ™”, ๋ฆฌํ„ฐ๋Ÿด, ์˜ˆ์™ธ, ํฌ์ธํ„ฐ) ๋ณ€์ˆ˜ ๋ณ€์ˆ˜๋Š” ๊ฐ€๋Šฅํ•œ ๋Šฆ๊ฒŒ ์„ ์–ธํ•˜๋ผ. ์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๊ธฐ ์ „์—๋Š” ์„ ์–ธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’ ๋’ค์— ๋ฌธ์ž๋ฅผ ๋ถ™์—ฌ ๋ฆฌํ„ฐ๋Ÿด์ž„์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž… 2 int 2u unsigned 2l long 2ul unsigned long 2.0 double 2.0f float 2.0l long double ์œ ์šฉํ•จ : ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ณต์†Œ์ˆ˜๋ฅผ ์œ„ํ•œ ํƒ€์ž…์„ ์ œ๊ณตํ•œ๋‹ค. std::complex z(1.3, 2.4), z2; ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ float์ด์™ธ์˜ ํƒ€์ž…๊ณผ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค...

Tutorials/C++ : Beginner 2021. 11. 14. 13:18