DirectX 12 ๋ทฐ ํฌํŠธ(Viewprot)์™€ ์‹œ์ € ์‚ฌ๊ฐํ˜•(ScissorRect)

2020. 7. 28. 19:59ใ†PROGRAMMING/DirectX 12

 

 

 

 

[ ๋ทฐ ํฌํŠธ(Viewport) ]

 

๋ทฐํฌํŠธ(Viewport)๋Š” ๋ Œ๋”๋ง์„ ํ•  ๋ Œ๋”ํƒ€๊ฒŸ(ํ›„๋ฉด๋ฒ„ํผ) ์˜์—ญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค.

๋ทฐํฌํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ Œ๋”๋งํ•  ํ™”๋ฉด ์˜์—ญ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ณดํ†ต ๋ Œ๋”ํƒ€๊ฒŸ ์ „์ฒด๋ฅผ ์„ค์ •ํ•œ๋‹ค. (0, 0, WIDTH, HEIGHT) ๊นŠ์ด ๊ฐ’์€ 0.0f ~ 1.0f์ด๋‹ค. ๋ ˆ์Šคํ„ฐ ๋ผ์ด์ € ๋‹จ๊ณ„์—์„œ ๋‹ค์‹œ ํ™”๋ฉด์— ๊ฐ์ฒด๋“ค์„ ๋งคํ•‘ํ•  ๋•Œ ๊นŠ์ด ๊ฐ’์„ 0 ~ 1๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

CommandList๊ฐ€ Reset()์ด ๋˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋‹ค์‹œ ๋ทฐํฌํŠธ๋ฅผ Set ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

 

 

[ ์‹œ์ € ์‚ฌ๊ฐํ˜•(ScissorRect) ]

 

์‹œ์ € ์‚ฌ๊ฐํ˜•์€ D3D12_RECT์„ ์„ ์–ธํ•ด์„œ ๋‚ด์šฉ์„ ์ฑ„์›Œ์ฃผ๋ฉด ๋œ๋‹ค.

RECT๊ตฌ์กฐ์ฒด๊ฐ€ D3D12_RECT๋กœ typedef ๋˜์–ด์žˆ๋‹ค.

์‹œ์ € ์‚ฌ๊ฐํ˜•์€ ๋ Œ๋”๋ง์—์„œ ์ œ๊ฑฐํ•˜์ง€ ์•Š์„ ์˜์—ญ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์‹œ์ € ์‚ฌ๊ฐํ˜•์— ํฌํ•จ๋˜์ง€ ์•Š์€ ์˜์—ญ์ด ๋ Œ๋”๋ง(๋ ˆ์Šคํ„ฐ๋ผ์ด์ €)์—์„œ ์ œ๊ฑฐ๋œ๋‹ค.

์ฆ‰, ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ์‹œ์ € ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋„ ๋ทฐํฌํŠธ ์‚ฌ๊ฐํ˜•๊ณผ ๋˜‘๊ฐ™์ด ์„ค์ •ํ•œ๋‹ค.

๋ทฐํฌํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CommandList๊ฐ€ Reset()์ด ๋  ๋•Œ ๋‹ค์‹œ ์‹œ์ € ์‚ฌ๊ฐํ˜•์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

 

m_Viewport๋Š” D3D12_VIEWPORT ๊ตฌ์กฐ์ฒด์ด๊ณ ,

m_ScissorRect๋Š” D3D12_RECT ๊ตฌ์กฐ์ฒด์ด๋‹ค.

RSSetViewports()์™€ RSSetScissorRects()์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ๊ฐ๊ฐ ๋ทฐํฌํŠธ์™€ ์‹œ์ € ์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜์ด๋‹ค.