목록SR (7)
승쨩개발공부
랜더링 기본 단위 3D 랜더링에는 기본 단위가 있는데, 정식 명칭은 Primitive Type 이다. Primitive Type 에는 (Point List), (Line List), (Line Strip), (Triangle List), (Triangle Strip), (Triangle Fan) 이렇게 6가지가 있다. Point List Point List는 정점들만 찍는 랜더링이다. 정점은 3D 공간 좌표이지만 지금은 Z값이 일정해서 깊이 차이는 없다. Line List Line List는 정점 2개 단위로 이어서 랜더링 하는 것이다. 시작점과 끝점이 존재하므로 선분을 만들게 된다. API LineTo 함수와 유사. 정점 2개가 짝을 이룬다는개 핵심. Line Strip Line Strip은 정점을 계..
프레임 버퍼 그래픽 카드 VRAM에는 Frame Buffer라는 영역이 존재한다. Frame Buffer는 전면 버퍼(Front Buffer) 후면 버퍼(Back Buffer)가 존재한다. 그래픽 카드가 없다면 DirectX가 내부적으로 생성해서 사용한다. 전면 버퍼와 후면 버퍼가 서로 계속 교환되며 화면의 출력된다 후면 버퍼는 색상 버퍼, 깊이 버퍼, 스텐실 버퍼로 분류되는데 일반적으로 깊이 스텐실 버퍼는 하나로 묶어서 사용한다. 깊이 버퍼에 24비트, 스텐실 버퍼에 8비트를 주고 합해서 32비트를 사용한다. 물론 깊이 버퍼만 사용하는 것도 가능하다. 수직 동기화 수직 동기화가 뭐냐면 그래픽 카드의 렌더링 갱신 속도를 모니터의 출력 갱신 속도에 맞춘다는 의미이다. 더블 버퍼링이 모니터의 깜빡임을 방지하..
랜더링 파이프라인이란? DirectX9을 이용한 3D Game 프로그램 입문에서는 "3D 세계에 대한 기하학적 표현과 이 세계를 바라보는 관점을 정의하는 가상 카메라를 이용해 2D 이미지를 만들어내는 역활을 담당한다." 라고 설명한다. 간단히 설명하자면, 추상적인 공간에 정의된 오브젝트들을 가상의 카메라에 담아 모니터에 출력하는 과정이다. 1. 로컬 스페이스 -> 오브젝트 하나의 좌표계, 기본적으로 물체의 중심을 말함. -> 외부영향이 없는 상태로 상대적 크기 등이 없다. 2. 월드 스페이스 -> 로컬스페이스에 있는 모델들을 크기, 회전, 이동 행렬을 곱해주어 월드스페이스로 옮겨진다. 3. 뷰 스페이스 -> 카메라를 기준으로 하는 좌표계 설정 -> 월드스페이스에 있는 모든 오브젝트들을 카메라 기준으로 변..
Graphic_Device 선언부 -> Sprtie_Begin, Sprite_End 더 이상 필요없다 -> 직접 사각형을 만들것이다 정의부 -> 백버퍼 사이즈는 윈도우에서 지원하는 해상도로만 설정한다 -> 백버퍼 = 렌더타겟(텍스쳐) -> 깊이버퍼 = 깊이값을 보관하는 메모리공간 -> 깊이버퍼를 킨다 = 화면에 픽셀을 그릴떄 반드시 깊이 테스트를 수행한다. -> 테스트를 수행한다 = 조건문을 생성 -> 어떤 픽셀들을 그릴떄 그 픽셀의 깊이를가지고 비교/테스트를하고 진짜 그릴것인지 안 그릴것인지 정함 -> 3D에선 카메라 기준에서 객체를 배치한다 -> 카메라에서 시야범위를 항상 정의한다 너무 멀리있는건 안보이도록 -> near = 가까운범위 0 -> far = 먼 범위 1 -> near 와 far 사이에 ..
Engine_Defines Engine_Macro -> unsinged long Destory_Instance로 만든이유 -> RefCnt를 관리하기 위해 Engine_Function Timer Timer클래스는 Engine솔루션에 추가해준다 왜? 다른 Client에서도 Timer을 써야하기 떄문 선언부 -> Base 자식클래스이니 무조건 Free함수가 따라 붙는다. -> 생성자 private이니 외부호출불가 -> static으로 맴버변수 하나 만든다 -> 싱글턴 으로 안만드는이유? -> 타이머 클래스가 상황에따라 여러개가 만들어질수가 있다. -> 타이머를 보관할수있는 매니저 클래스를 따로 만들것이다. 정의부 밀리세컨드? -> 밀리세컨드 = 1000/1초 -> 밀리세컨드는 1초당 1000프레임이다 FPS..
1. Free함수 순수 가상함수 처리 순수 가상함수로 처리하였기에 정의부 Free함수는 지워준다. 2. Defines 만들기 엔진 솔루션에 Defines 헤더파일 4개를 만들어준다 엔진 솔루션 .h파일이기에 엔진폴더 Public에 생성해준다. #1. Engine_Typedef.h 메모리 관리를위해 자주쓰는 자료형을 typedef(별명) 을 잡아준다. Signed 와 unsigned? -> 정수 기반 자료형은 signed와 unsigned형식으로 나누어져있다 -> 사용할 데이터가 양수와 음수 값 모두 사용한다면 signed 자료형 을 선택하고, -> 사용할 데이터가 양수 값만 사용한다면 unsigned 자료형을 선택해서 사용한다. -> signed char 의 데이터 표현 범위 -128 ~ 127 총 25..