⭐ DirectX/DirectX11 2D + WinAPI
[DX11] D3D11 TEXTURE ADDRESS
[DX11] D3D11 TEXTURE ADDRESS
2022.09.13D3D SAMPLER STATE 텍스처의 칼라를 추출해 uv 좌표에 대응하는 작업. 텍스처의 픽셀 사이를 처리하는 방식은 아래와 같다. TEXTURE ADDRESS D3D11 TEXTURE ADDRESS D3D11_TEXTURE_ADDRESS_WRAP 텍스처 좌표를 반복 D3D11_TEXTURE_ADDRESS_MIRROR 인접한 이미지를 반복 D3D11_TEXTURE_ADDRESS_CLAMP 텍스처 끝 부분의 픽셀 늘어남 D3D11_TEXTURE_ADDRESS_BORDER 경계색을 설정 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE CLAMP + MIRROR samplerDesc.Filter D3D11_FILTER_ MIN 축소 필터 MAG 확대 필터 MIP MIN과 MAG의 레벨 차를 사..
[DirectX11] 별찍기
[DirectX11] 별찍기
2022.08.171 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #include "framework.h" ID3D11Buffer* ObStar::fillVertexBuffer = nullptr; ID3D11Buffer* ObStar::vertexBuffer = nullptr; void ObStar::CreateStaticMember() { VertexPC* Vertex; Vertex = new VertexPC[5 * 3]; for (UINT i = 0; i GetDevice()->CreateBuffer(..
[DirectX11] 렌더링 파이프라인
[DirectX11] 렌더링 파이프라인
2022.08.11렌더링 파이프라인 화면상 출력을 연결된 구조파이프라인() : 이전 단계의 출력이 다음 단계의 입력으로 이어지는 형태 -> 입출력이 맞물려 있다. IA 입력조립기 정점, 정점을 가지고 그릴 모양 등을 정하는 단계. IA 입력조립기(Input Assembler) 정점, 정점을 가지고 그릴 모양 등을 정하는 단계. VS 정점셰이더(Vertex Shader) 공간 변환shader -> gpu를 통해 연산이 가능.hlsl 사용 RS 레스터라이저(Rasterizer) 픽셀화정점, 정점을 가지고 그릴 모양 등을 정하는 단계. PS 픽셀셰이더(Pixel Shader) OM 출력병합기(Output Merger) Merger -> 합병
[WinAPI] 포물선 충돌 및 마찰계수 설정
[WinAPI] 포물선 충돌 및 마찰계수 설정
2022.08.11Bullet.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 #include "stdafx.h" Bullet::Bullet() { arrow.SetWorldPos(Vector2(2000.0f, 2000.0f)); arrow.scale.x ..
[WinAPI] 충돌
[WinAPI] 충돌
2022.08.10Bullet.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #pragma once class Bullet { public: ObLine arrow; ObCircle arrowPet; float scalar; Vector2 fireDir; Vector2 velocity; float gravity; public: Bullet(); void Update(ObRect player); void LateUpdate(); //추가 void Render(); bool Shoot(ObRect player, float scalar, Vector2 firePos); }; Colored by Color Scripter cs void LateUpdate(); 추가 Bullet.c..
[WinAPI] 마우스 회전
[WinAPI] 마우스 회전
2022.08.09Input.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #pragma once class Input : public Singleton { friend class Window; private: ... Vector2 mouseScreenPos; //추가 Vector2 mouseWorldPos; //추가 public: Input(); ~Input(); bool KeyDown(int KeyCode); //눌렀을때 최초1회 bool KeyPress(int KeyCode);//누르고있을때 bool KeyUp(int KeyCode); //눌렀다가 떼었을때 최초1회 void Update(); Vector2 GetScreenMousPos() { re..
[WinAPI] 총알 발사
[WinAPI] 총알 발사
2022.08.08Bullet.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #pragma once class Bullet { public: ObLine arrow; ObCircle arrowPet; float scalar; float gravity; Vector2 fireDir; //추가 public: Bullet(); void Update(ObRect player); void Render(); bool Shoot(ObRect player, float scalar, Vector2 firePos); //Vector2 firePos 추가 }; Colored by Color Scripter cs Vector2 fireDir; bool Shoot(ObRect player, ..
[WinAPI] Bullet 속도를 Gauge Bar와 연동
[WinAPI] Bullet 속도를 Gauge Bar와 연동
2022.07.29Bullet.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #pragma once class Bullet { public: ObLine arrow; ObCircle arrowPet; float scalar; public: Bullet(); void Update(ObRect player); void Render(); bool Shoot(ObRect player, float scalar); }; Colored by Color Scripter cs float scalar 생성 bool Shoot(ObRect player, flaot scalar) Bullet.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ..
[winAPI] 시계 만들기
[winAPI] 시계 만들기
2022.07.221 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #pragma once class MainGame : public Scene { public: ObRect rc; ObStar st; ObCircle cc; ObLine hour; ObLine min; ObLine sec; SYSTEMTIME localTime; public: ~MainGame(); void Init() override; void Update() override; void Render() override; }; cs 1 2 3 4 5 6 7 8 9 hour.rotation = -DIV2PI + (float)localTime.wHour * 30.0f * ToRadian + (float)local..
[WinAPI] 도형 만들기
[WinAPI] 도형 만들기
2022.07.07더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 12..
[WinAPI] 좌표 활용 연습
[WinAPI] 좌표 활용 연습
2022.07.07좌표 활용 연습 - 윈도우 창에 '응' 글자 모양을 그려주자 - 방향키로 좌, 우, 위, 아래 이동이 가능하게 만들어주자 - 숫자 1, 2, 3, 4 키를 누르면 수평과 수직 방향으로 늘이거나 줄이도록 만들어주자 '응' 글자 모양 만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 int posX = 500; int posY = 300; int scaleX = 1; int scaleY = 1; LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { //어떤 메세지가 발생되었는가를 통해 처리할 조건문 switch (mess..
[WinAPI] Window Procedure, Message Loop/Queue, Window Message
[WinAPI] Window Procedure, Message Loop/Queue, Window Message
2022.07.05Window Procedure 윈도우 프로시져 - 메세지 처리 전용 함수. WndProc 함수. - WinMain이 아닌, 운영체제에 의해 호출된다. - 윈도우 프로시저는 메시지가 들어오면 호출된 후 해당 메시지에 맞게 내용을 처리. - 콜백함수이다. (콜백함수: 운영체제에 의해 호출되는 응용프로그램 내 함수. 사용자 호출x) - WndProc 함수 인수 HWND hWnd UINT iMessage WPARAM wParam LPARAM lParam Message Loop 메시지 루프 - 윈도우 프로그램(주로 WinMain함수 끝에 위치)에서 메시지를 처리하는 부분 - 함수 종류: GetMessage(), TranslateMessage(), DispatchMessage() - GetMessage 함수: 큐에..