๋ชฉ๋ก์ ์ฒด ๊ธ (1103)
KoreanFoodie's Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FkfA1/btrjlqOqIfx/VaWANhsq7xTIMLKVYQqtOk/img.jpg)
์นํด์ง๊ณ ์ถ์ ์ฌ๋์ ์ด๋ค ์ฌ๋์ผ๊น? ๋ชจ๋ ์ฌ๋, ๋ฅ๊ธ๋ฅ๊ธํ ์ฌ๋, ๋ ์นด๋ก์ด ์ฌ๋, ํฌ๊ทผํ ์ฌ๋. ์ธ์์๋ ์ฐธ ๋ค์ํ ์ฌ๋๋ค์ด ์๋ค. ํ์ง๋ง '์นํด์ง๊ณ ์ถ์ ์ฌ๋'์ด ๋๋ ๊ฒ์ ์ฌ์ด ์ผ์ด ์๋๋ค. ์ค์ ๋ก ๋ง์ ์ฌ๋๋ค์๊ฒ์ ์ฌ๋๋ฐ๋ ์ฌ๋๋ค์ ์ดํด๋ณด๋ฉด, ๋๊ฐ ์ฑ๊ฒฉ์ด ์ ํ๊ณ ๊ณ ์ง์ด ์ธ์ง ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ํน์ ํน์ ๋ถ๋ถ์์ ๋งค๋ ฅ์ด ๋์ณ ํ๋ฅด๊ฑฐ๋. ์์๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ์ฌ๋๋ ์์๋ ์๊ธฐ ์ฃผ์ฅ์ด ๋๋ฌด ๊ฐํ ๊ฒ์ ์ฌ๋๋ฐ๊ธฐ ํ๋ ๋ฒ. ๊ทธ๋ฐ ์๋ฏธ์์ ๋๋ ํํ๋ฆฌ์นด๊ฐ ์ซ๋ค. ๋ฌผ๋ก ํํ๋ฆฌ์นด๋ฅผ ์ข์ํ๋ ๋ถ๋ค๋ ๋ง์ด ๊ณ์๊ฒ ์ง๋ง, ๋๋ ๋๋ถ๋ถ์ ์๋ฆฌ์์ ํํ๋ฆฌ์นด์ ํฅ์ด ๋ค๋ฅธ ์ฌ๋ฃ๋ค๊ณผ์ ์กฐํ๋ฅผ ์ด๋ฃจ์ง ๋ชปํ๋ค๊ณ ์๊ฐํ๋ค. ๋ค๋ง ๋ช๊ฐ์ง์ ์์ธ๊ฐ ์๋๋ฐ, ์ค์ ์๋ฆฌ์์ ์ฐ์ด๋ ํํ๋ฆฌ์นด๊ฐ ๋ฐ๋ก ๊ทธ ์ค ํ๋์ด๋ค. ํ๋ณด์ฑ๋ ์ค..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6HbBy/btrjr26gYZg/0PSuRKS1MK0x67pFwD0Wr1/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 13. Rasterizer state๊ณผ ์ขํ๊ณ Rasterizer State ์ค์ ํ๊ธฐ - FillMode๋ ์ ์ ๋ค๋ก ์ธํด ๋ง๋ค์ด์ง ์์ญ์ ์ด๋ป๊ฒ ์ฑ์ธ ๊ฒ์ธ๊ฐ์ ๋ํ ์ ๋ณด์ด๋ค - CullMode๋ ์ด๋ค ๋ฉด์ ๋ณด์ด์ง ์๊ฒ ํ ๊ฒ์ธ๊ฐ์ ๋ํ ์ ๋ณด์ด๋ค - FrontCounterClockWise๋ ์ ์ ์ด ๊ทธ๋ ค์ง๋ ์์์ ๋ฐ๋ผ ์๋ฉด๊ณผ ๋ท๋ฉด์ ์ ํด์ฃผ๋ ๊ฐ์ด๋ค. Culling ๊ณผ Cliping DirectX vs OpenGL ์ขํ๊ณ Execute.cpp ๋จผ์ Execute.h์์ rasterizer_state๋ฅผ ์ ์ธํด ์ค ํ, Execute.cpp์์ D3DX... ์ ํด๋นํ๋ ๊ฐ๋ค์ ์ธํ ํด์ค๋ค. ID3D11RasterizerState* rasterizer_state = n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zhYvR/btrjoOHpPez/t6fAbqPAL9y61lhk1Fc1TK/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 12. ํ๋ ฌ ๊ฒฐํฉ : ์ด๋๊ณผ ํ์ ํ๋ ฌ ๊ฒฐํฉํ๊ธฐ - ์ค์ผ์ผ ํ๋ ฌ์๋ 0์ด ๋ค์ด๊ฐ๋ฉด ์ ๋ ์ ๋๋ค - ํ๋ ฌ์ ๊ตํ ๋ฒ์น์ด ์ฑ๋ฆฝํ์ง ์๋๋ค - ํ๋ ฌ ๊ฒฐํฉ ์์๋ ์ค! ์! ์ด! ๊ณต! ๋ถ! (์ค์ผ์ผ, ์์ , ์ด๋, ๊ณต์ , ๋ถ๋ชจ) Execute.cpp D3DXMATRIX๋ฅผ ์ด์ฉํด์ ํ๋ ฌ ์ฐ์ฐ์ ํตํด ๊ณต๊ฐ์ ํฌ๊ธฐ์ ์์น๋ฅผ ๋ฐ๊พธ๊ณ , ํ์ ์ ์์ผ๋ณด์! // World : Scaling์ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๋ฐ๊ฟ ์ ์๋ค. D3DXMATRIX S; D3DXMatrixScaling(&S, 100, 100, 1); std::cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/86EGK/btrjoPfcY7a/awNYpREXr7kp12iDcprn3K/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 11. Constant Buffer ๊ฐ๋ ๊ณผ ์์ฉ Constant Buffer - HLSL์์ cbufferํ์ ์ผ๋ก ๋ฐ์ ์ ์๋ค. - ์์ ๋ฒํผ๋ ๋ฐ๋์ 16byte ๋จ์๋ก ์ ๋ ฌ๋์ด์ผ ํ๋ค. - D3D11_USAGE_DYNAMIC์ GPU๊ฐ ์ฝ๊ณ , CPU๊ฐ ์ฐ๋ ๋ฐฉ์์ด๋ค. World, View, Projection ํ๋ ฌ ์ ์ฉํ๊ธฐ - Vertex Shader์์ mul() ํจ์๋ฅผ ํตํด ์์น ๋ฒกํฐ๋ฅผ ํ๋ ฌ๊ณผ ๊ณฑํ์ฌ ๊ณต๊ฐ ๋ณํ์ํฌ ์ ์๋ค. - DirectX๋ ํ ์ฐ์ , HLSL์ ์ด ์ฐ์ ๋ฐฉ์์ผ๋ก ํ๋ ฌ์ ์์ฑํ๋ค. - HLSL์์๋ row_maor ํค์๋๋ก, DirectX์์๋ Transpose๋ก ํ๋ ฌ ์์ฑ ๋ฐฉ์์ ๋ง์ถฐ ์ค ์ ์๋ค. Execute.cpp ๋จผ์ Co..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjS61V/btrfXxXHik3/MEc4MqtspFNgtmzJ41Gk10/img.jpg)
๋ถ์๊ฐ ๋ ์ ์๋ '์ง์ง ๋ฐฉ๋ฒ'์ ๋ํด ์๋ ค๋๋ฆฝ๋๋ค : ๋ถ์ ์ถ์์ฐจ์ ์ฌ์ค ์ด์ฑ ์ ์ ๋ง ์ ๋ง ์ ๋ช ํ ์ฑ ์ผ๋ก, ๋๋ ์ด ์ฑ ์ ๊ตฐ๋์์ ์ฒ์ ์ ํ๊ฒ ๋์๋ค. ์ฌ์ค ๊ทธ๋น์์๋ ํ์ง๋ฅผ ๋ณด๊ณ '๋ญ๊ฐ ์ฌ์ง๊ฐ์ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ๊ฑธ๊น?' '์ฌํ ์๊ธฐ๊ณ๋ฐ์์ฒ๋ผ ๋ปํ ์ด์ผ๊ธฐ๋ฅผ ์จ๋์๊ฑฐ ์๋์ผ?' ๊ฐ์ ์ง๋ ์ง์๊ณผ ํจ๊ป ์ฑ ์ ํผ์ณ๋ณด์ง๋ ์์์๋ค. ํ์ง๋ง ์๊ฐ์ด ์ง๋ ์ด ์ด์ฑ ์ ์ฝ๊ณ ๋ ํ๋ก, ๋ด ์ธ์์ ์๋นํ ๋ง์ด ๋ฐ๋์๋ค.(์์ : ๋ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ํ ์์ ์์ ๋ณด๋ฉด ํฌ๊ฒ ๋ฌ๋ผ์ง์ง ์์๋ค) ๋ถ์ ์ถ์์ฐจ์ ์ ๋ถ์๊ฐ ๋๊ธธ ์ํ์ง๋ง ๋ง์๊ฐ์ง๊ณผ ๋ฐฉ๋ฒ๋ก ์ ๋ํด ์ด๋ ค์์ ๊ฒช๋ ์ฌ๋๋ค์ด ๊ผญ ์ฝ์ด๋ดค์ผ๋ฉด ํ๋ ์ฑ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ต๊ทผ์๋ ์์ฒญ ์ถ์ฒ๋์๋ก๋ ์๋ ค์ ธ ์๋ ๋ฏํ๋ค. ์์ธํ ๋ด์ฉ์ ์ด์ผ๊ธฐํ๊ธฐ ์ ์, ๋ง์ ์ฌ๋๋ค์ด ํ์ง๋ง ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bazwFn/btri5k1nrUW/YtNYZjk3v7RCrMF31LlBUK/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 10. ํ๋ ฌ์ ์ด์ฉํ ๊ณต๊ฐ ์์ฑ(view, projection) D3DXMATRIX๋ฅผ ํ์ฉํ ๊ณต๊ฐ ์์ฑ - D3DXMATRIX๋ ์ด 16๊ฐ์ floatํ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. (์ ์ ํ์ธ) - ํ๋ ฌ์ ํญ์ ๋จ์ํ๋ ฌ๋ก ์ด๊ธฐํํด์ผ ํ๋ค. (D3DXIdentityMatrix ํจ์) - ๊ณต๊ฐ์ด ์ปค์ง๊ฑฐ๋ ์ด๋ํ๋ฉด ๋ด๋ถ์ ๋ฐ์ดํฐ๋ ๋์ผํ๊ฒ ๋ณํ๋๋ค. (์์น๋ ๋ฒกํฐ ๋ฐ์ดํฐ ํฌ๊ธฐ) Projection ์์๋ณด๊ธฐ - ์๊ทผํฌ์์ ์ ๋์ฒด ๋ชจ์์ ์์ผ ๊ณต๊ฐ์ ๊ฐ์ง๋ค - ์ง๊ตํฌ์์ ์ง์ก๋ฉด์ฒด ๋ชจ์์ ์์ผ ๊ณต๊ฐ์ ๊ฐ์ง๋ค ๋จ์ถํค - ์์ญ ์ง์ ํ Ctrl + H ๋จ์ถํค๋ฅผ ๋๋ฅด๋ฉด ํด๋น ๋ฒ์์ ํน์ ๋จ์ด๋ค์ ๋ฐ๊ฟ ์ ์๋ค. (Alt + A ๋๋ฅด๋ฉด ๋ชจ๋ ๋ฐ๋) ์ขํ๊ณ - OpenGL : RH..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ADYqV/btri3UaPV3q/fo3a4AgKSi7w3vN4Wc49Bk/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 9. Index Buffer & ๊ณต๊ฐ ๋ณํ Index Buffer ๋ง๋ค๊ณ ์ธํ ํ๊ธฐ : ์ค๋ณต๋๋ ์ ์ ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ๊ณต๊ฐ์ด๋ ๋ฌด์์ธ๊ฐ? : ๊ณต๊ฐ์ ํ๋ ฌ๋ก ํํ๋จ. Local - World - View - Projection ์์ผ๋ก ํ๋ฌ๊ฐ. ์ด๋ Projection์ 3D ๋ฐ์ดํฐ๋ฅผ 2D ๋ฐ์ดํฐ๋ก ๋ณํ์ํค๋ ์์ ์. (๋ ์์ธํ ๋ด์ฉ์ ์ฃผ์์ผ๋ก) ์ฐธ๊ณ : Index Buffer๋ฅผ ํ์ฉํด ์ ๊ทธ๋ ค๋ณด๊ธฐ index buffer : ์์ฆ์ 4๋ฐ์ดํธ, index๋ unsinged int ํ. ์ค๋ณต ์ ์ ์ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ. D3D11_USAGE_IMMUTABLE : GPU - Read, CPU - ์ ๊ทผ ๋ถ๊ฐ Execute.cpp ์ง๋ ๊ธ์์ ์ผ๊ฐํ 2๊ฐ๋ฅผ ์ด์ฉํด..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BFCv7/btri8rY6DPl/5cy2z3Ey7ckeFT0ncJsSCk/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 8. Pixel Shader Stage & ๋ํ ๊ทธ๋ฆฌ๊ธฐ Rasterizer : 3D ๋ฐ์ดํฐ๋ฅผ 2D ๋ฐ์ดํฐ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ. VS ๋จ๊ณ์์ ์ ๊ทํํ ๊ณต๊ฐ์ ๋ค์ ๋ณด์ฌ์ค ์์ญ๋งํผ ๋ค์ ๋๋ ค์ค๋ค. ๋ํ Pixel Shader ๋จ๊ณ๋ก ๋์ด๊ฐ ํฝ์ ๋ค์ ์ง์ ํด์ค๋ค. PixelShader ์์ฑ๊ณผ ์ฐ๊ฒฐ : SV_Target ์๋ฉํฑ์ ์ฌ์ฉํ์ฌ ํ์ฌ ์ธํ ๋ ๋ฉ์ธ๋ ๋ ํ๊น์ ์ฌ์ฉํ๋ผ๊ณ ์๋ ค์ฃผ์ด์ผ ํ๋ค. ํ๋ฉด์ ํฝ์ ๋จ์๋ก ์์์ ์ถ๋ ฅํ๋๋ฐ, Pixel Shader๋ Rasterizer๊ฐ ์ง์ ํ ํฝ์ ๊ฐ์๋งํผ ํธ์ถ๋๋ค. ์ฌ๊ฐํ ๋ง๋ค๊ธฐ : ์ฌ๊ฐํ์ ๋ง๋ค๊ธฐ ์ํด์๋ ์ ์ 6๊ฐ๊ฐ ํ์ํ๋ค. ์๋ํ๋ฉด ์ผ๊ฐํ 2๊ฐ๋ฅผ ๋ถ์ฌ ๋ง๋๋ ํํ์ด๊ธฐ ๋๋ฌธ! ์ฌ๋ฌ ์ค ๋์์ ํธ์งํ๊ธฐ : Shift + Al..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mybDV/btriSKLSffx/t7To1nksMTbZODhE0k4y6K/img.jpg)
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 7. Vertex Shader Stage ์ด๋ฒ ๊ธ์์๋ hlsl์ ์ด์ฉํด ๊ฐ๋จํ Vertex Shaer๋ฅผ ๋ง๋๋ ์ค์ต์ ํด ๋ณด๋๋ก ํ๊ฒ ๋ค. HLSL์ High Level Shader Language๋ก, ์์ ์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ง๋ค๋ ๊ฒ์ ๋ ์ฌ๋์ด ๋ณด๊ธฐ ์ฝ๊ฒ ํํํ ์ธ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํ๋ก์ ํธ์ HLSlํญ์ผ๋ก ์์ฑํ ํ, ํ๋ก์ ํธ์์ ์ ์ธ์์ผ์ ์ฌ์ฉํ๋ค. (์ปดํ์ผ์ ์ฉ์ด) ์์๋์ด์ผ ํ ๊ฐ๋ : 1. Semantic : Semantic์ ๋ฐ์ดํฐ์ ์ถ์ฒ์ ์ญํ ์ ๋ํ ๋ถ๋ช ํ ์๋ฏธ๋ฅผ ๋ถ์ฌํ๊ธฐ ์ํ ํค์๋์ด๋ค. Color.hlsl struct VertexInput { // float4๋ vector4์ ๊ฐ์ // Semantic : ๋ฐ์ดํฐ์ ์ถ์ฒ์ ์ญํ ์ ๋ํ ๋ถ๋ช ํ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cjkMxv/btriKyMu1Jf/qRhIkMgZ9V2Fs3SZuVvEUK/img.jpg)
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 19. ํธ๋์ญ์ ๋ชจ๋์ ๋ฝ ์ํ ์์คํ ๊ฐ์ ๊ทน๋์ ์ ๋ฐ์ฑ์ ์๊ตฌํ๋ ์์ ์ ๊ฒฝ์ฐ, ์๋๋ณด๋ค ๋ฌด๊ฒฐ์ฑ์ด ๋์ฑ ์ค์ํ ์ ์๋ค. ํธ๋์ญ์ ์ DML ์ฟผ๋ฆฌ๋ค์ ๋ชจ์ ์์์ฑ(ํ๊บผ๋ฒ์ ์คํ๋๊ฑฐ๋, ์๋๋ฉด ์์ ์คํ๋์ง ์๊ฑฐ๋), ์ผ๊ด์ฑ, ๊ฒฉ๋ฆฌ์ฑ, ์์์ฑ์ ๋ณด์ฅํ๋ ๋ช ๋ น์ ๋ฌถ์์ด๋ค. ํธ๋์ญ์ ์ ์คํ๋๋ฉด ๋จผ์ ์์ ์์ ์์ญ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ, ์ปค๋ฐ์ ํ๋ฉด ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ์์ผ๋ก ์๋ํ์ฌ ์์ ํ๋ค. ๋ชจ๋๋ ํํ ์๋ ์ปค๋ฐ(Auto Commit)๋ชจ๋์ ์๋ ์ปค๋ฐ(Manual Commit Mode)๊ฐ ์๋๋ฐ, SQL Server์ MariaDB๋ ์๋, ์ค๋ผํด๊ณผ DB2๋ ์๋์ด ๋ํดํธ์ด..