PROGRAMMING/DirectX 12(10)
-
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 -
DirectX 12 ๋ฆฌ์์ค ์ฅ๋ฒฝ(Resource Barrier)
[ ๋ฆฌ์์ค ์ฅ๋ฒฝ(Resource Barrier ] DirectX 12 ์ฅ์น ์ด๊ธฐํ ์ดํดํ๊ธฐ (5) - part 1 [ DirectX 12 ์ฅ์น ์ด๊ธฐํ ๋จ๊ณ ] 1 ๋จ๊ณ Device(๊ทธ๋ํฝ ๋๋ฐ์ด์ค) ์์ฑ. 2 ๋จ๊ณ CommandQueue์ CommandList ์์ฑ. 3 ๋จ๊ณ SwapChain ์์ฑ. 4 ๋จ๊ณ FenceObject ์์ฑ. 5 ๋จ๊ณ ๋ ๋ํ๊ฒ(RenderTarget)๊ณผ ๊น์ด/.. ssinyoung.tistory.com ์ ๊ธ์์ ์์ฑํ ๋ฆฌ์์ค๋ฅผ ํตํด์ ์ด๋ค ๋ช ๋ น์ ์คํํ๊ธฐ ์ํด์๋ ๋ฆฌ์์ค๊ฐ ํน์ ํ ์ํ์ ์์ ๋ ๊ฐ๋ฅํ๋ค๊ณ ์ค๋ช ํ๋ค. ๋ฆฌ์์ค๊ฐ ๊ฐ์ง ์ ์๋ ์ํ๋ ๊ต์ฅํ ๋ง๊ณ , ์ด๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ๊ด๋ฆฌํด์ค์ผ ํ๋ค. ๊ฐ ๊ทธ๋ํฝ ๋ช ๋ น์ด ์คํ๋๊ธฐ ์ํ์ฌ ์ฌ์ฉ๋๋ ๋ฆฌ์์ค๋ ์ ์ ํ ์ํ๋ฅผ ๊ฐ์ ธ์ผ ..
2020.07.29 -
DirectX 12 ๋ทฐ ํฌํธ(Viewprot)์ ์์ ์ฌ๊ฐํ(ScissorRect)
[ ๋ทฐ ํฌํธ(Viewport) ] ๋ทฐํฌํธ(Viewport)๋ ๋ ๋๋ง์ ํ ๋ ๋ํ๊ฒ(ํ๋ฉด๋ฒํผ) ์์ญ์ ๋ํ๋ด๋ ๊ตฌ์กฐ์ฒด์ด๋ค. ๋ทฐํฌํธ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋ ๋๋งํ ํ๋ฉด ์์ญ์ ์ค์ ํ๋ ๊ฒ์ด๋ค. ๋ณดํต ๋ ๋ํ๊ฒ ์ ์ฒด๋ฅผ ์ค์ ํ๋ค. (0, 0, WIDTH, HEIGHT) ๊น์ด ๊ฐ์ 0.0f ~ 1.0f์ด๋ค. ๋ ์คํฐ ๋ผ์ด์ ๋จ๊ณ์์ ๋ค์ ํ๋ฉด์ ๊ฐ์ฒด๋ค์ ๋งคํํ ๋ ๊น์ด ๊ฐ์ 0 ~ 1๋ก ๋ฐ๊ฟ์ค๋ค. CommandList๊ฐ Reset()์ด ๋๋ฉด ๋ฐ๋์ ๋ค์ ๋ทฐํฌํธ๋ฅผ Set ํด์ค์ผ ํ๋ค. [ ์์ ์ฌ๊ฐํ(ScissorRect) ] ์์ ์ฌ๊ฐํ์ D3D12_RECT์ ์ ์ธํด์ ๋ด์ฉ์ ์ฑ์์ฃผ๋ฉด ๋๋ค. RECT๊ตฌ์กฐ์ฒด๊ฐ D3D12_RECT๋ก typedef ๋์ด์๋ค. ์์ ์ฌ๊ฐํ์ ๋ ๋๋ง์์ ์ ๊ฑฐํ์ง ์์ ์์ญ์ ์ค์ ํ๋ ๊ฒ์ด๋ค. ์์ ..
2020.07.28