[Graphics] 텍스처와 UV
·
게임개발/Graphics
# Index Buffer 생성이제 Index Buffer를 만들어 보겠습니다. Index Buffer는 서로 정점이 겹치는 여러개의 삼각형을 그릴 때 유용합니다.Index Buffer : 같은 정점을 가진 삼각형이 여러개 존재한다면, 중복된 정점을 재사용 -> 메모리 절약, GPU 처리 속도 향상더보기 정점 버퍼와 인덱스 버퍼의 차이?: 정점 버퍼(Vertex Buffer)는 정점의 위치, 색상, 텍스처 좌표 같은 데이터를 GPU에 전달하는 버퍼이고,인덱스 버퍼(Index Buffer)는 정점 버퍼에 있는 정점들을 어떤 순서로 조합해 도형(삼각형 등)을 만들지 지정하고, 이를 GPU에 전달하는 버퍼입니다.인덱스 버퍼를 사용하면 같은 정점을 여러 도형에서 재사용할 수 있어서, 메모리를 절약할 수 있고, ..
[Graphics] 삼각형 띄우기
·
게임개발/Graphics
셰이더(Shader)는 게임 속 물체의 색, 모양, 빛나는 방식을 GPU가 계산하도록 도와주는 코드 [전반적인 흐름]// 1. 정점 데이터 생성CreateGeometry(); // → _vertices를 정의하고 VertexBuffer에 업로드// 2. 셰이더 및 구조 정의CreateVertexShader(); // → VertexShader 컴파일 및 등록CreatePixelShader(); // → PixelShader 컴파일 및 등록CreateInputLayout(); // → 정점 구조 설명// 3. GPU에 렌더링 명령Render() { IASetVertexBuffers(); // 정점 버퍼 바인딩 IASetInputLayout(); ..
[Graphics] 초기화
·
게임개발/Graphics
Game.h#pragma onceclass Game{public: Game(); ~Game();public: void Init(HWND hwnd); void Update(); void Render();private: void RenderBegin(); void RenderEnd();private: /* 결과물을 그릴 백 버퍼 생성 */ void CreateDeviceAndSwapChain(); /* 백 퍼버에 대한 포인터, GPU가 목표 버퍼에 접근할 수 있도록 해주는 랜더타겟 뷰 객체 생성 */ void CreateRenderTargetView(); void SetViewport();private: HWND _hwnd; uint32 _width = 0; uint32 _height = 0; float _..
[Graphics] 프로젝트 시작
·
게임개발/Graphics
+Libraries/Include, Lib폴더에 DirectXTex 폴더를 추가해준다 (tistory에 업로드 불가 ..) // GameGraphics.cpp : 애플리케이션에 대한 진입점을 정의합니다.//#include "pch.h"#include "framework.h"#include "GameGraphics.h"#include "Game.h"#define MAX_LOADSTRING 100// 전역 변수:HINSTANCE hInst; // 현재 인스턴스입니다.HWND hWnd;// 이 코드 모듈에 포함된 함수의 선언을 전달합니다:ATOM MyRegisterClass(HINSTANCE hInstance);BOOL ..
[Graphics] DirectX 11 기초
·
게임개발/Graphics
렌더링 파이프라인 : 3차원 상의 물체를 2차원의 컴퓨터 화면에 실제적으로 표현하기 위한 과정가장 중요한 5단계와 역할1. Input Assembler : 모델에 대한 기하학적 정보를 넘겨줌2. Vertex Shader : 정점단위로 연산, 각 정점이 어디에 위치해야하는지 연산3. Rasterizer Stage : 정점으로 이루어진 삼각형 내부를 보간하는 작4. Pixel Shader Stage : 조명에 따라 모델의 색이 달라지게 함5. Output Merger Stage : 모델을 화면에 출력 🧩 DX11의 주요 구성 요소DeviceGPU와 통신을 가능하게 해주는 인터페이스Swap Chain화면 출력(버퍼 교체) 담당Vertex Buffer정점 정보 (위치, 색상 등) 담는 곳Index Buffer..
[백준 / BOJ] 2631 줄세우기 C++
·
알고리즘/DP
문제 설명DP 문제입니다. KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 위해 목적지까지 번호순서대로 일렬로 서서 걸어가도록 하였다. 이동 도중에 보니 아이들의 번호순서가 바뀌었다. 그래서 선생님은 다시 번호 순서대로 줄을 세우기 위해서 아이들의 위치를 옮기려고 한다. 그리고 아이들이 혼란스러워하지 않도록 하기 위해 위치를 옮기는 아이들의 수를 최소로 하려고 한다.예를 들어, 7명의 아이들이 다음과 같은 순서대로 줄을 서 있다고 하자.3 7 5 2 6 1 4아이들을 순서대로 줄을 세우기 위해, 먼저 4번 아이를 7번 아이의 뒤로 옮겨보자. 그러면 다음과 같은 순서..
[백준 / BOJ] 2096 내려가기 C++
·
알고리즘/DP
문제 설명DP 문제입니다. N줄에 0 이상 9 이하의 숫자가 세 개씩 적혀 있다. 내려가기 게임을 하고 있는데, 이 게임은 첫 줄에서 시작해서 마지막 줄에서 끝나게 되는 놀이이다.먼저 처음에 적혀 있는 세 개의 숫자 중에서 하나를 골라서 시작하게 된다. 그리고 다음 줄로 내려가는데, 다음 줄로 내려갈 때에는 다음과 같은 제약 조건이 있다. 바로 아래의 수로 넘어가거나, 아니면 바로 아래의 수와 붙어 있는 수로만 이동할 수 있다는 것이다. 이 제약 조건을 그림으로 나타내어 보면 다음과 같다.별표는 현재 위치이고, 그 아랫 줄의 파란 동그라미는 원룡이가 다음 줄로 내려갈 수 있는 위치이며, 빨간 가위표는 원룡이가 내려갈 수 없는 위치가 된다. 숫자표가 주어져 있을 때, 얻을 수 있는 최대 점수, 최소 점수를..
[백준/BOJ] 2011 암호코드 C++
·
알고리즘/DP
문제 설명DP 문제입니다. 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다.상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야.선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어.상근: 그렇네. 25114를 다시 영어로 바꾸면, "BEAAD", "YAAD", "YAN", "YKD", "BEKD", "BEAN" 총 6가지가 나오는데, BEAN이 맞는 단어라는건 쉽게 알수 있잖아?선영: 예가 적절하지 않았네 ㅠㅠ 만약 내가 500자리 글자를 암호화 했다고 해봐. 그 때는 나올 수 있는 해석이 정말 ..