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

๐Ÿ“ Development Study/๐Ÿ’ป Win32API35

๋ณ€์ˆ˜ ๋ฐ ์œ ํ˜• ์ด์ „ ์žฅ์—์„œ ๋ณด์—ฌ์ค€ "Hello World" ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์šฉ์„ฑ์€ ๋‹ค์†Œ ์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•œ ๋‹ค์Œ ๊ฒฐ๊ณผ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด์•ผ ํ™”๋ฉด์— ์ž‘์„ฑ๋œ ๊ฐ„๋‹จํ•œ ๋ฌธ์žฅ์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ ๋ฌธ์žฅ์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ๋นจ๋ž์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ™”๋ฉด์— ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ๋ฅผ ์ธ์‡„ํ•˜๋Š” ๋ฐ๋งŒ ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ๋‚˜์•„๊ฐ€์„œ ์‹ค์ œ๋กœ ์ž‘์—…์„ ์ ˆ์•ฝํ•˜๋Š” ์œ ์šฉํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด ๋ณ€์ˆ˜ ๊ฐœ๋…์„ ๋„์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ์ˆซ์ž 5๋ฅผ ๊ธฐ์–ตํ•˜๋ผ๊ณ  ํ•œ ๋‹ค์Œ ์ˆซ์ž 2๋„ ๋™์‹œ์— ์™ธ์šฐ๋ผ๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ๊ฐ’(5 ๋ฐ 2)์„ ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด๊ฐ€ ๋งํ•œ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž์— 1์„ ๋”ํ•˜๋ผ๊ณ  ์š”์ฒญํ•˜๋ฉด ์ˆซ์ž 6(์ฆ‰, 5+1)๊ณผ 2๋ฅผ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ.. 2022. 8. 17.
ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ๋ณด์ž๊ฐ€ ์ฒ˜์Œ ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ "Hello World"๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ๋‹จ์ˆœํžˆ "Hello World"๋ฅผ ์ปดํ“จํ„ฐ ํ™”๋ฉด์— ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋งŒ C++ ํ”„๋กœ๊ทธ๋žจ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ๋“  ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. // my first program in C++ #include int main() { std::cout 2022. 8. 17.
์ปดํŒŒ์ผ๋Ÿฌ ์ปดํŒŒ์ผ๋Ÿฌ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ปดํŒŒ์ผ์ด๋ž€ ์–ด๋–ค ์–ธ์–ด์˜ ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ณผ์ •์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์—” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ปดํ“จํ„ฐ ์œ„์—์„œ ๋ฐ”๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๊ณ„์–ด๋ฅผ ํ†ตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฐ ๊ณผ์ •์€ ์ƒ์‚ฐ์„ฑ, ๊ธฐ๊ธฐ ๊ฐ„ ํ˜ธํ™˜์„ฑ, ๋””๋ฒ„๊น…๋“ฑ ๋ชจ๋“  ๋ฉด์—์„œ ํšจ์œจ์ ์ด์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํ“จํ„ฐ ๊ณตํ•™์ด ๋งŽ์ด ๋ฐœ์ „ํ•˜๋ฉด์„œ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ถ”์ƒํ™”๋œ ๊ณ ์ˆ˜์ค€ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฅผ ๋ฒˆ์—ญ๊ธฐ๋ฅผ ํ†ตํ•ด ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ, ์ด ๋ฒˆ์—ญ๊ธฐ๊ฐ€ ๋ฐ”๋กœ ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. ์›์น™์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊ณ„์–ด๋กœ ๋ฐ”๊พธ๊ธฐ๋งŒ ํ•  ๋ฟ ๋ฐ”๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์—ฌ๋Ÿฌ ์†Œ์Šค ํŒŒ์ผ์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฌผ์„ ํ•ฉ์น˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ํฌํ•จ์‹œํ‚ค๋Š” ๋“ฑ ๋ณ„๋„์˜ ์ž‘์—…์„ ๊ฑฐ์ณ์•ผ ์‹คํ–‰์ด ๋˜๋Š”๋ฐ ์ด๋ฅผ .. 2022. 8. 17.
๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ดํ•ด ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š” ํ˜ธ์ŠคํŠธ๋“ค์ด ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํŒŒ์ผ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋Œ€์ƒ์ด ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†Œํ”„ํŠธ์›จ์–ด ์ฐจ์›์—์„œ ํ˜ธ์ŠคํŠธ๋“ค๊ฐ„์— ์—ฐ๊ฒฐ์„ ํ•ด์ฃผ๋Š” ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•  ๋ฟ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํ•ด์ฃผ๋Š” ์žฅ์น˜๋ฅผ ์†Œ์ผ“(Socket)์ด๋ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๋Š” ์šฉ์–ด์™€ ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๋Š” ์šฉ์–ด๋Š” ๊ฐ™์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ ๋˜๊ณ  ์žˆ๋‹ค. ์†Œ์ผ“์ด๋ž€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š” ๋‘๊ฐœ์˜ ํ˜ธ์ŠคํŠธ(host) ๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ๋งค๊ฐœ์ฒด ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋กœํ† ์ฝœ์˜ ์ •์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์“ฐ๋˜ ๊ฐ„์—, ๊ทธ ๋ฐฉ๋ฒ•๋งŒํผ์€ ์ƒํ˜ธ๊ฐ„์— ๋ฐ˜๋“œ์‹œ ์ผ์น˜ ํ•ด์•ผ ํ•œ๋‹ค. ํ•œ์‚ฌ๋žŒ์€ ์ „ํ™”๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ•œ์‚ฌ๋žŒ์€ ํŽธ์ง€๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๋Š” ์—†๋Š”๊ฒƒ์ฒ˜๋Ÿผ ์„œ๋กœ๊ฐ„์˜ ๊ทœ์•ฝ์ด ํ•„์š”ํ•˜๋‹ค.. 2022. 7. 27.
Directx12 ์ดˆ๊ธฐํ™” Directx12 ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ Directx12 Initialize (์ดˆ๊ธฐํ™”) ๋‹ค์ด๋ ‰ํŠธx12 ์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜์™€ ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์—์…‹๋“ค์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ ์ดˆ๊ธฐํ™”. Directx12 API ์˜ ๋””๋ฒ„๊ทธ๋ฅผ ๋„์™€์ค„ ๋””๋ฒ„๊ทธ ๊ณ„์ธต์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฐ”์ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปค๋งจ๋“œ ํ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์Šค์™‘์ฒด์ธ์„ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ๋ Œ๋”ํƒ€๊ฒŸ ๋ทฐ(RTV) ๋ฅผ ๋งŒ๋“ค๊ธฐ์œ„ํ•œ Descriptor Heap ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ( ๋””์Šคํฌ๋ฆฝํ„ฐ ํž™์€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด ์งˆ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.) ๋ Œ๋”ํƒ€๊ฒŸ๋ทฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Command Allocator ํ• ๋‹น ( gpu ๋ช…๋ น์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ) ๋ช…๋ น ํ• ๋‹น์ž๋Š” ๋ช…๋ ฅ ๋ชฉ๋ก(command list) ๋ฐ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Assets ์ดˆ.. 2022. 7. 25.