왼손 좌표계 / 오른손 좌표계 왼손 좌표계 - 시계방향으로 그려야 그려진다 오른손 좌표계 - 반시계방향으로 그려야 그려진다 Triangle VertexBuffer vertices[0].Position = Vector3(-0.5f, +0.0f, 0.0f); vertices[1].Position = Vector3(+0.0f, +0.5f, 0.0f); vertices[2].Position = Vector3(+0.5f, +0.0f, 0.0f); vertices[0].Position = Vector3(-0.5f, +0.0f, 0.0f); vertices[1].Position = Vector3(+0.5f, +0.0f, 0.0f); vertices[2].Position = Vector3(+0.0f, +0.5f, 0...
분류 전체보기
Vertex = 정점 무언가를 그리기 위한 정점 NDC 좌표계 (정규 좌표계) 정규화된 좌표계로 -1 ~ +1으로 나타낸다 2D 공간 렌더링 파이프라인 IA -> VS -> RS -> PS IA (Input Assembly) VertexBuffer, Primitive Topology CPU의 정보를 GPU로 받아온다 정점 정보, 정점을 어떻게 그릴건지 (정점의 Position) VS (Vertex Shader) 정점을 셰이더에서 어떻게 변화시킬건지 WVP가 NDC좌표계로 변경된다 RS (Rasterization) 정점을 3D공간에서 2D공간으로 바꿔준다 정점을 픽셀로 Viewport를 설정한다 (정점에서 정점까지 선을 긋는다고 생각하면 그 선을 이루는 픽셀들을 만드는 작업) PS (Pixel Shader..
DirectX 란? SDK (Software Develop Kit) => API(Application Programming Interface) 프로그래밍을 하기 위한 도구의 집합 게임 개발을 위한 함수나 클래스들을 모아둔 라이브러리 Version 8 CPU렌더링 중점 9 CPU + GPU 렌더링, 셰이더 본격적 지원 복잡한 렌더링 파이프라인 10, 11 GPU 렌더링, 셰이더가 없으면 렌더링 불가 10 -> GS 추가 (Geometry Shader) 11 -> TS 추가 (Tessellation) 12 Window 10에서 지원 Low Level API , 하드웨어에 가깝게 설계됨
생성자 ( Constructor ) 객체가 생성될 때 초기화하는 함수 오버로딩이 가능하다 디폴트 생성자 작성한 생성자가 없을 경우 컴파일러에 의해서 자동으로 만들어지는 생상자 매개변수가 없거나 초기화된 매개변수를 가지고 있다 클래스 하나에 하나의 디폴트 생성자가 있다 class Example { public: Example(); Example(int a = 0); }; int main() { Example e; // Error!! return 0; } ▶ 디폴트 생성자가 두 개라서 생기는 오류 class Example { public: Example(); Example(int a); }; int main() { Example e;//디폴트 생성자 호출 Example e(10);//생성자 호출 return..
메모리 공간 Code 영역 함수, 상수 Data 영역 전역 변수, 정적 변수(static) Heap 영역 동적 할당 ->런타임에 크기 결정 Stack 영역 지역, 매개 변수 컴파일 타임에 크기 결정 overflow / underflow C/C++에서는 전역/정적 변수 선언시 자동으로 0으로 초기화된다 동적 할당과 정적 할당 동적 할당과 정적 할당은 메모리 공간을 언제 할당하느냐에 따라 나뉘어진다 동적 할당의 특징 프로그램 실행 단계에서 공간 할당이 이루어진다 메모리 크기가 고정되어있지 않아서 내가 원하는 메모리만큼 할당할 수 있다 더 이상 사용하지 않는 공간은 사용자가 직접 해제 해줘야한다 Heap영역을 포인터로 가르켜 할당한다 C++에서 동적 할당은 new / delete C에서는 malloc / fr..
https://www.acmicpc.net/problem/24511 24511번: queuestack첫째 줄에 queuestack을 구성하는 자료구조의 개수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 길이 $N$의 수열 $A$가 주어진다. $i$번 자료구조가 큐라면 $A_i = 0$, 스택이라면 $A_i = 1$이다. 셋째 줄www.acmicpc.net 말이 너무 길어서 처음에 이해하는데 시간이 좀 걸렸다 그런데 차근차근 그림으로 그려가며 이해를 해보면사실 큐와 스택의 구조를 가지고 있다고는 하지만스택 특성상 삽입된 원소가 가장 먼저 pop되는 형식이다따라서 스택의 경우엔 여기서는 그냥 지나쳐가는 필요 없는 원소라는 뜻이다결과적으로 큐인 자료구조일 경우에만 계산..
https://www.acmicpc.net/problem/28279 28279번: 덱 2첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.www.acmicpc.net #includeusing namespace std;#define MAX 1000000int deq[MAX * 2];int head = MAX - 1;int tail = MAX;int vSize = 0;int Empty(){//6 if ((tail - head - 1) == 0) return 1; else return 0;}void PushFront(int x){//1 deq[head--] = x;}void Push..
베지에 곡선을 사용해보았다 보통 화살의 궤적을 그릴 때 자연스러움을 위해서 많이 사용하는 것 같았다 나는 보스의 스킬을 만드는데 베지에 곡선을 사용했다 보스 스킬 중에 광범위 공격으로 해당 범위 내의 무작위 지점에 불덩이를 날리는 것이다 그 불덩이의 궤적을 베지에 곡선을 사용해서 구현했다 먼저 베지에 곡선에 대해서 공부할 필요가 있다 베지에 곡선 (Bezier Curve) 일단 곡선을 그리는 공식인데 매개 변수에 따라 그려지는 곡선이다 주어지는 특정한 점에 따라서 곡선이 그려지는 것이다 그래서 게임 프로그래밍에서는 원하는 궤적을 따라 물체를 움직이고 싶을 때 많이 사용된다 시작점과 끝점을 제외하고 주어지는 점의 개수에 따라서 n+1차 베지에 곡선이 된다 공식 몇 가지 나올건데 이 공식에서 t 는 시간 (..