๋ชฉ๋ก์ ์ฒด ๊ธ (1096)
KoreanFoodie's Study
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 8. Pixel Shader Stage & ๋ํ ๊ทธ๋ฆฌ๊ธฐ Rasterizer : 3D ๋ฐ์ดํฐ๋ฅผ 2D ๋ฐ์ดํฐ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ. VS ๋จ๊ณ์์ ์ ๊ทํํ ๊ณต๊ฐ์ ๋ค์ ๋ณด์ฌ์ค ์์ญ๋งํผ ๋ค์ ๋๋ ค์ค๋ค. ๋ํ Pixel Shader ๋จ๊ณ๋ก ๋์ด๊ฐ ํฝ์ ๋ค์ ์ง์ ํด์ค๋ค. PixelShader ์์ฑ๊ณผ ์ฐ๊ฒฐ : SV_Target ์๋ฉํฑ์ ์ฌ์ฉํ์ฌ ํ์ฌ ์ธํ ๋ ๋ฉ์ธ๋ ๋ ํ๊น์ ์ฌ์ฉํ๋ผ๊ณ ์๋ ค์ฃผ์ด์ผ ํ๋ค. ํ๋ฉด์ ํฝ์ ๋จ์๋ก ์์์ ์ถ๋ ฅํ๋๋ฐ, Pixel Shader๋ Rasterizer๊ฐ ์ง์ ํ ํฝ์ ๊ฐ์๋งํผ ํธ์ถ๋๋ค. ์ฌ๊ฐํ ๋ง๋ค๊ธฐ : ์ฌ๊ฐํ์ ๋ง๋ค๊ธฐ ์ํด์๋ ์ ์ 6๊ฐ๊ฐ ํ์ํ๋ค. ์๋ํ๋ฉด ์ผ๊ฐํ 2๊ฐ๋ฅผ ๋ถ์ฌ ๋ง๋๋ ํํ์ด๊ธฐ ๋๋ฌธ! ์ฌ๋ฌ ์ค ๋์์ ํธ์งํ๊ธฐ : Shift + Al..
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 : ๋ฐ์ดํฐ์ ์ถ์ฒ์ ์ญํ ์ ๋ํ ๋ถ๋ช ํ..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 19. ํธ๋์ญ์ ๋ชจ๋์ ๋ฝ ์ํ ์์คํ ๊ฐ์ ๊ทน๋์ ์ ๋ฐ์ฑ์ ์๊ตฌํ๋ ์์ ์ ๊ฒฝ์ฐ, ์๋๋ณด๋ค ๋ฌด๊ฒฐ์ฑ์ด ๋์ฑ ์ค์ํ ์ ์๋ค. ํธ๋์ญ์ ์ DML ์ฟผ๋ฆฌ๋ค์ ๋ชจ์ ์์์ฑ(ํ๊บผ๋ฒ์ ์คํ๋๊ฑฐ๋, ์๋๋ฉด ์์ ์คํ๋์ง ์๊ฑฐ๋), ์ผ๊ด์ฑ, ๊ฒฉ๋ฆฌ์ฑ, ์์์ฑ์ ๋ณด์ฅํ๋ ๋ช ๋ น์ ๋ฌถ์์ด๋ค. ํธ๋์ญ์ ์ ์คํ๋๋ฉด ๋จผ์ ์์ ์์ ์์ญ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ, ์ปค๋ฐ์ ํ๋ฉด ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ์์ผ๋ก ์๋ํ์ฌ ์์ ํ๋ค. ๋ชจ๋๋ ํํ ์๋ ์ปค๋ฐ(Auto Commit)๋ชจ๋์ ์๋ ์ปค๋ฐ(Manual Commit Mode)๊ฐ ์๋๋ฐ, SQL Server์ MariaDB๋ ์๋, ์ค๋ผํด๊ณผ DB2๋ ์๋์ด ๋ํดํธ์ด..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 18. ํธ๋ฆฌ๊ฑฐ(๋ฌด๊ฒฐ์ฑ, BEFORE/AFTER, ๋ค์ค, ์ค์ฒฉ, DLL) ํธ๋ฆฌ๊ฑฐ๋ ํน์ ์ฌ๊ฑด์ด ๋ฐ์ํ์ ๋ ์๋์ผ๋ก ํธ์ถ๋๋ ์ฝ๋๋ก, ์ง์ ํธ์ถํ ์ ์์ผ๋ฉฐ ์ผ์ ํ ์กฐ๊ฑด์ด ๋๋ฉด ์๋์ผ๋ก ํธ์ถ๋๋ค. ์์คํ ์ด ํธ์ถํ๋ฏ๋ก ์ธ์๋ฅผ ์ ๋ฌํ ์ ์๊ณ ๋ฆฌํด๊ฐ๋ ๋ฐํํ ์ ์๋ค. ์ฃผ๋ก ํ ์ด๋ธ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณํ๊ฐ ๋ฐ์ํ ๋ ์คํํ ์ฝ๋๋ฅผ ํธ๋ฆฌ๊ฑฐ๋ก ์ ์ํ๋ค. ์ ์๋ ๋ค์๊ณผ ๊ฐ๋ค. CREATE [OR REPLACE] TRIGGER ํธ๋ฆฌ๊ฑฐ์ด๋ฆ BEFORE | AFTER | INSTEAD OF INSERT OR UPDATE OR DELETE [OF ์ปฌ๋ผ] ON ํ ์ด๋ธ๋ช [FOR EACH ROW] BEGI..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 17. ์ปค์์ ๋์ ์ฟผ๋ฆฌ ์ปค์๋ ๊ฒฐ๊ณผ์ ์ ํ ํ์ฉ ์ํํ ์ ์๋ค. ๊ฒฐ๊ณผ์ ์ ์ํํ๋ ค๋ฉด ์๋ฒ๋ ๊ฒฐ๊ณผ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด ๋๊ณ ์ปค์๋ฅผ ํตํด ํ ์ค์ฉ ์ฝ๋๋ค. ์ด๋ฐ ์ฒ๋ฆฌ๋ฅผ ํ๋ ค๋ฉด ๋ด๋ถ์ ์ธ ์ค๋น๊ฐ ํ์ํ๊ณ ๋ค ์ฌ์ฉํ ํ ์ ๋ฆฌ๋ ํด์ผ ํ๋ค. ์ปค์๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํ๋ ์ ์ฐจ๋ ์ ํํ๋์ด ์๋ค. 1. ์ด๋ค ๊ฒฐ๊ณผ์ ์ ์ํํ ๊ฒ์ธ์ง ์ปค์๋ฅผ ์ ์ : CURSOR ์ปค์ ์ด๋ฆ IS SELECT... 2. OPEN ๋ช ๋ น์ผ๋ก ์ปค์๋ฅผ ์ฐ๋ค. SELECT ๋ฌธ์ ์คํํ์ฌ ๊ฒฐ๊ณผ์ ์ ๋ง๋ค๊ณ ์ปค์๋ฅผ ์ฒซ ํ ์ด์ ์ ์์น์์ผ ์ํ ์ค๋น๋ฅผ ํ๋ค. 3. FETCH ๋ช ๋ น์ผ๋ก ๋ค์ ํ์ ์ฝ์ด ๋ณ์์ ๋์ ํ๊ณ ์ฝ์ ๊ฐ์ผ๋ก ์ํ๋ ์ฒ๋ฆฌ..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 16. ์ ์ฅ ํ๋ก์์ , ์ธ์, ํจ์ SQL ๋ช ๋ น ์ด๊ฐ๋ฅผ ๋ชจ์ผ๋ฉด ์ฝ๋๊ฐ ๋๋ฉฐ, ์ด๋ฅผ ํ ์คํธ๋ก ์ ์ฅํ๋ฉด ์คํฌ๋ฆฌํธ, ์๋ฒ์ ์ ์ฅํ๋ฉด ์ ์ฅ ํ๋ก์์ ธ๊ฐ ๋๋ค. ํ์์ ๋ค์๊ณผ ๊ฐ๋ค. CREATE [OR REPLACE] PROCEDURE ์ด๋ฆ(์ธ์ ๋ชฉ๋ก) AS ๋๋ IS ๋ณ์์ ์ธ BEGIN ๋ณธ์ฒด END [์ด๋ฆ]; ๋ชจ๋ DB์ค๋ธ์ ํธ๋ ๊ณ ์ ํ ์ด๋ฆ์ ๊ฐ์ ธ์ผ ํ๋ค. ๋ํ ํ๋ก์์ ธ๋ฅผ Ctrl + Enter๋ก ์คํํ ๋๋ ์ฝ๋ ๋ธ๋ฝ์ ์ ํํด์ ์คํํ๋ ๊ฒ์ด ์์ ํ๋ค. ์ถํ ์์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด OR REPLACE๋ฅผ ๋ถ์ฌ ์ฃผ๋ ๊ฒ์ด ์ข๋ค. ํ๋ก์์ ์ ์๋ฌธ์ ํญ์ ๋จ๋ ์ผ๋ก ์คํํ๋ ๊ฒ ์ข์ผ๋ฉฐ, ์ ์ญ์ ์ผ๋ก..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 15. PL/SQL ์ ์ด๋ฌธ (IF, LOOP...), ์์ธ์ฒ๋ฆฌ(EXCEPTION, RAISE) -- ๋ค์ ์ ์ธ๋ฌธ์ผ๋ก ์ถ๋ ฅ๋ฌธ์ ์ฐ๊ฒ ๋ค๋ ์ ์ธ๋ถํฐ ํด์ผ ํ๋ค. -- DBMS_OUTPUT.PUT_LINE(์ถ๋ ฅํ ๋ด์ฉ) ์ ์ฌ์ฉํ ์ ์๊ฒ ํจ SET SERVEROUTPUT ON; BEGIN DBMS_OUTPUT.PUT_LINE('์๋ ํ์ธ์'); END; BEGIN DBMS_OUTPUT.PUT_LINE('์๋ ํ์ธ์') END BEGIN DBMS_OUTPUT.PUT_LINE(2 + 3 * 4); DBMS_OUTPUT.PUT_LINE(POWER(2, 3)); END; -- DECLARE ๋ฌธ ์์ ..
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 6. Input Assembler Stage ์ธํ ํ๊ธฐ Rendering Pipeline์๋ ๋ค์๊ณผ ๊ฐ์ ์คํ ์ด์ง๊ฐ ์๋ค. IA - VS - RS - PS - OM : ์ด ์ค, ์ค๋์ IA ์คํ ์ด์ง์ธ Input Assembler Stage๋ฅผ ์ธํ ํ๋๋ก ํ๊ฒ ๋ค. ๋จผ์ , DirectX์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ์ธ ์ ์ (Vertex)๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ์ ์ ๋ค์ ํ์ดํ๋ผ์ธ์ ์ฐ๊ฒฐํ Bufferํ ์์๋ค ๋ง๋ ๋ค. ๊ทธ ํ, Device Context๋ฅผ ํ์ฉํ์ฌ ํ์ดํ๋ผ์ธ์ Bufferํ ์์์ ์ธํ ํ๋ค. ๋ง์ง๋ง์ผ๋ก Primitive Topology ์ ๋ณด๋ก ์ด๋ป๊ฒ ์ ์ ์ ์ฐ๊ฒฐํ ์ง ์ธํ ํ ์ ์๋ค. ์์๋์ด์ผ ํ ๊ฐ๋ : 1. vector ๋ ๋ฌด์์ธ๊ฐ? 2. D3D11_USAGE์ ๋ํด ์กฐ์ฌ..
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 5. Window ์ฐฝ์ DirectX ์ฐ๊ฒฐ(์ฐ๋)ํ๊ธฐ ์ด๋ฒ ์๊ฐ์๋ ์ด์ ์ ๋์ ๋ Window ์ฐฝ์ DirectX์์๋ฅผ ๋ฃ์ด ์ฐ๋ํด๋ณธ๋ค. ์์๋์ด์ผ ํ ๊ฐ๋ : 1. Design Pattern ์กฐ์ฌ 2. ์ ์ ๋ณ์ ๋ณต์ต -> static member๋ class ๋ด๋ถ์ ํ๋ ๋ฐ์ ์์ผ๋ฉฐ, ํด๋์ค์์ ๊ณต์ ํ๋ ์์์ด๋ค. 3. 16์ง์๋ก ํํ๋๋ ์์ ์ ๋ณด ์กฐ์ฌํด๋ณด๊ธฐ -> D3DXCOLOR ๋ณ์๋ ์ค์ ๋ก float[4]๋ก ํํ ๊ฐ๋ฅ 4. const int* vs int* const ์ฐจ์ด? -> ์ผ์ชฝ์ ํฌ์ธํฐ๊ฐ ์์์ธ ๊ฒ. ๋ฐ๋ผ์ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ๋ฐ๊ฟ ์ ์๊ณ , ์ฐธ์กฐํ๋ ๋ณ์์ ๊ฐ์ ๋ฐ๊ฟ ์๋ ์์ง๋ง, *ptr = new_value์์ผ๋ก๋ ๋ฐ๊ฟ ์ ์๋ค. ์ค๋ฅธ์ชฝ์ ์..
DirectX 11 2D ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ - 3. ID3D11Device, SwapChain, Resource View ๊ฐ๋ ๋ฐ ๊ฐ๋จํ ์ด๊ธฐํ Grahpics.h, Graphics.cpp ํ์ผ์ ์ด์ฉํ์ฌ ๋ฐฑ๋ฒํผ๋ฅผ ๋ง๋ค๊ณ ID3D11Device(Context)๋ฑ์ ํ์ผ๋ค์ ์ด๊ธฐํํด ๋ณด์. ์์๋์ด์ผ ํ ๊ฐ๋ : 1. Device์ DeviceContext, SwapChain ์ด๊ธฐํํ๋ฉด์ ์ฌ์ฉํ ์ต์ ์ ๋ฆฌ : ์ฃผ์์ผ๋ก ์ ๋ฆฌ 2. bpc(bit per color), Anti Aliasing 3. UUID, GUID 4. dangling pointer Graphics.h #pragma once // final : ๋๋ ์์๋ ์ ์๋ค class Graphics final { public: Graphics(); ..