PROGRAMMING(43)
-
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ array
[ STL ์๋ฃ๊ตฌ์กฐ array ] array๋ ๋ค๋ฅธ STL ์ปจํ ์ด๋์ ๊ฐ์ด ๋์ผํ ์๋ฃํ์ ๋ด์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด STL์์ ์ ๊ณตํ๋ ๋ฐฐ์ด ์ปจํ ์ด๋์ด๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ๋ฐฐ์ด๋ณด๋ค ์ข ๋ ๊ธฐ๋ฅ์ ์ผ๋ก ๋ง์ ๋๋ํ ๋ฐฐ์ด์ด๋ค. ์ฆ, POD ๋ฐฐ์ด์ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ํ๋ฉด์ ๋ค๋ฅธ ์ผ๋ ํ ์ ์๋๋ก ํด๋์ค๋ก ๋ง๋ ๋ฐฐ์ด์ด๋ค. ๊ทธ๋ฌ๋ฉด์๋ POD ๋ฐฐ์ด๊ณผ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ๊ฐ๋ค. POD๋? Plain Old Data. ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฐ์์ ์ธ ๋ฐ์ดํธ์ด์ ๋งํ๋ค. ๋ฐฐ์ด์ ๋จ์ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋์ผํ ์๋ฃํ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ์๋ ๊ณต๊ฐ์ ์ ์ฅํ๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค์ ๋ก ๋ถ์ด์์ผ๋ฏ๋ก ์์ ๋ฒ์ง ์ฃผ์๋ง ๊ธฐ์ตํ๊ณ ์์ผ๋ฉด ๋ฐฐ์ด์ ๋ค๋ฅธ ์์๋ก ์ด๋ํ๋ ๊ฒ์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ์ฆ, a[0]์ ์ต์ธ์คํ๋..
2020.08.06 -
๋ค์ ์ ๋ฆฌํ๋ C++ STL [ ๊ฐ์ ]
[ STL (Standard Template Library) ] STL(Standard Template Libray)์ด๋ ํ์ค ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํ ํ๋ฆฟ(Template)์ ๋ฌด์์ผ๊น? ํ ํ๋ฆฟ(Template)์ C++์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ ๊ธฐ๋ฅ์ผ๋ก ์๋ฃํ์ ์ฝ๋งค์ด์ง ์๊ณ ๋์ํ ์ ์๋๋ก ๋ฒ์ฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด ์ค๋ค. ์๋ฅผ ๋ค์ด์ Add๋ผ๋ ๋ง์ ํจ์๋ฅผ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ์. ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ์๋ฃํ์ ์๊ด์์ด ํจ์๋ฅผ ์์ฑํ์ฌ ๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ์์ ํ ํ๋ฆฟ ํจ์ Add๋ ์ด๋ค ์๋ฃํ์ด๋๋ผ๋ ํจ์์ ์ ๋ฌ๋๋ ๋ ๊ฐ์ ์ธ์๊ฐ ๊ฐ์ ์๋ฃํ์ด๊ธฐ๋ง ํ๋ฉด ๋ ์๋ฃํ์ ๋ํ ์ ์๋ Addํจ์๋ฅผ ๋ง๋ค์ด๋ธ๋ค. ์ด๋ ๊ฒ ๋ฒ์ฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ค๋ฆญ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ ํ๋ค. ์ฆ, ์๋ฃ..
2020.08.05 -
DirectX 12 ๋ฉํฐ ์ค๋ ๋ ๋ ๋๋ง(Multi-Thread Rendering)
[ DirectX 12 ๋ฉํฐ ์ค๋ ๋ ๋ ๋๋ง(Multi-Thread Rendering ] ๊ตฌํ ๊ธฐ๊ฐ์ ์ํ ์ฝ๋ ๋ถ์ 3์ผ, ํ๋ก์ ํธ์ ์ ์ฉ 4์ผ. ์ฝ ์ผ์ฃผ์ผ ์ ๋ ์๊ฐ์ด ์์๋๋ค. ํ์ฌ ํ๋ก์ ํธ์์ ์ฌ์ฉ ์ค์ธ ์ค๋ ๋์ ๊ฐ์๋ 4๊ฐ์ด๋ค. ์ฑ๊ธ ์ค๋ ๋ ๋ ๋๋ง๊ณผ ๋ฉํฐ์ค๋ ๋ ๋ ๋๋ง์ ์ฑ๋ฅ์ ๋น๊ตํด๋ณด๊ฒ ๋ค. ์ฐ์ ์ฌ์ฉํ๊ณ ์๋ ๋ฉ์ฌ ๋ชจ๋ธ ๋ฐ์ดํฐ์ ์ ๋ณด์ด๋ค. ์ ๋๋ฉ์ด์ ์ ๋ณด๊ฐ ์๋ ์คํํฑ ๋ฉ์ฌ์ ๊ฒฝ์ฐ vertex ์ ์ 11,400๊ฐ / index 3,800๊ฐ์ด๋ค. ์ ๋๋ฉ์ด์ ์คํค๋์ ํด์ผ ํ๋ ๋ค์ด๋๋ฏน ๋ฉ์ฌ์ ๊ฒฝ์ฐ vertex ์ ์ 51,294๊ฐ / index 17,096๊ฐ์ด๋ค. ๋ชจ๋ ์ค๋ธ์ ํธ์ ๋ํด์ ์ธ์คํด์ฑ์ ์ ์ฉ X. ๋ชจ๋ ์ค๋ธ์ ํธ๋ vertex ์ ฐ์ด๋์ pixel ์ ฐ์ด๋๋ฅผ ํตํด ๋ ๋๋ง ํ๋ค. ๋ ธํธ๋ถ ๊ธฐ๊ธฐ ์ฌ์..
2020.08.01 -
DirectX 12 ๋ฃจํธ ์๋ช (Root Signature)๊ณผ ํ์ดํ๋ผ์ธ ์ํ(Pipeline State)
[ ๋ฃจํธ ์๋ช (Root Signature) ] ๋ฃจํธ ์๋ช (Root Signature)๋ ์ด๋ค ๋ฆฌ์์ค(๋ฐ์ดํฐ)๋ค์ด ๊ทธ๋ํฝ์ค ํ์ดํ๋ผ์ธ์ ์ ฐ์ด๋์ ์ฐ๊ฒฐ๋๋ ๊ฐ๋ฅผ ์ ์ํ๋ ๊ฒ์ด๋ค. ์ฆ, ๋จ์ด ๊ทธ๋๋ก ์์ฑํ ์ ฐ์ด๋๋ฅผ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์๋ง๊ฒ ์์ฑํ๋๊ฐ์ ๋ํด ํ์ธํ๊ณ ์ธ์ธ์ ๋ฐ๋ ๊ณผ์ ์ด๋ผ๊ณ ์ดํดํ๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์๋ค. ๋ฐ๋ผ์ ๋ฃจํธ ์๋ช (Root Siganture)์ ๋ฐ๋์ ๊ทธ๋ฆฌ๊ธฐ ํธ์ถ์ ์ฐ์ด๋ ์ ฐ์ด๋๋ค๊ณผ ํธํ๋์ด์ผ ํ๋ค. (๊ทธ๋ฆฌ๊ธฐ ํธ์ถ ์ ์ ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ๋ฌถ์๋ค๊ณ ๊ธฐ๋๋๋ ๋ชจ๋ ์์์ ์ ๊ณตํด์ผ ํ๋ค) ๋ ๋๋ง ํธ์ถ๋ง๋ค ์๋ก ๋ค๋ฅธ ์ ฐ์ด๋ ํ๋ก๊ทธ๋จ๋ค์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ทธ๋ฐ ๊ฒฝ์ฐ์๋ ๋ฃจํธ ์๋ช (Root Signature)๋ ๋ฌ๋ผ์ผ ํ๋ค. Direct3D์์ ๋ฃจํธ ์๋ช (Root Signature)์ ๋ํํ๋..
2020.08.01