상용엔진만 학습하여 게임을 만드는 것으로 프로그래밍 실력을 판단할 수 없다.그래픽스를 아는 것은 게임 엔진을 바라보는 시야를 넓히는 것면접때 자주 기출되는 질문들질문에 대답하기 위해선 그래픽스 기본에 대한 지식을 알아야한다.Graphics와 DirectX를 공부할 때는
DirectX에서 Device Class는 각종 디스플레이 관련 객체를 생성한다.현실로 치면 인력사무소 느낌화면 디스플레이 관련 기능을 dxgi를 통해 관리한다.Direct3D와 함께 쓰이는 API전체 화면 모드 전환지원 되는 디스플레이 모드 열거스왑 체인 생성 등ID
여러개의 CommandList들을 GPU에 제출하는 역할을 한다.말 그대로 Queue형태로 동작하는 COM객체이다.ExcuteCommandList()를 통해 GPU에게 명령을 제출한다.일감을 차곡차곡 기록했다가 한 번에 요청하는 개념명령을 예약하는 방식이라 바로 실행되
스왑 체인은 순차적으로 연결된 프레임 버퍼들의 집합.Front Buffer: 모니터와 직접 연결, 그래픽 카드만 접근 가능Back Buffer: 응용 프로그램이 그래픽 작업을 하는 영역이다.프레젠테이션(Presentation)Back Buffer를 Front Buffe
렌더링 과정에서 GPU자원들에 자료를 기록하거나 자원(resource)들에서 자료를 읽어들이고 그리기 명령을 제출할 때 먼저 참조된 자원들을 렌더링 파이프라인에 묶어야(binding)해야한다. 이 때 GPU 자원들을 직접 묶지 않고 해당 자원을 참조하는 서술자(Desc
상수 버퍼(Constant buffer)는 정점 및 픽셀 셰이더에서 사용될 상수를 모아 놓은 버퍼이다.상수 버퍼 사용을 위해 cpp 코드 영역에 상수 버퍼 타입의 구조체를 정의하고 셰이더에도 동일한 포맷으로 상수 버퍼 구조체를 정의해야 한다. 시스템 메모리에서 구조체
Root Siganature 어떤 리소스(데이터)들이 그래픽스 파이프라인의 셰이더에 연결되는 가를 정의 계약서의 결재 역할을 한다.
Vertex buffer만을 사용할 경우 중복되는 정점을 따로 저장해야 한다는 단점이 생긴다.이 단점을 해결한 것이 Vertex Buffer와 Index Buffer를 같이 사용하는 방법이다.위 코드를 보면 총 4개의 정점을 사용하고 index buffer를 통해 0,
카메라 좌표계 -> 투영 좌표계2D화면을 보고 거리를 알 수 없다. 그러나 비율은 유지된다.따라서 투영좌표계는 직사각형으로 되어있다.(비율만 따지겠다!)중간에 있건 뒤에 있건 상관없이 비율의 결과물만 최종 결과물이 된다.비율도 중요하지만 깊이 또한 중요하다카메라가 가장
KEY_STATE를 이용하여 각 KEY의 상태를 PRESS,DOWN,UP,NONE으로 변경한다.이전 상태에 따라서 지금의 상태를 변경하거나 유지한다.asciiKeyskey & 0x80을 사용하면 Key가 눌려있는지 알 수 있다.
Timer의 필요성Update문을 1 프레임마다 한번씩 수행됨만약 input문을 이용하여 방향키의 입력마다 1씩 물체의 이동을 구현할 경우 Update문이 매 프레임마다 실행되어 fps만큼 이동하는 문제가 발생.원하는 움직임 구현이 어려워지고 개인의 컴퓨터 성능에 따라
주로 유니티에서 사용되며, 셰이더와 텍스처, 그리고 Mesh 삼총사를 합쳐서 관리하는 Component이다.구현 부분은 매우 간단하다.일단 Materual에 대한 상수버퍼를 업로드하여 사용할 메모리를 할당한다.그 후 SRV_REGISTER에 사용할 Texture를 넘겨
Component는 Object를 생성하기 위해 필요한 여러가지(Transform, Mesh, Collider, Light...등등)를 부품(Component)처럼 필요한 것을 Object에 추가하고 제거하는 방식으로 사용하는 것을 의미한다.유니티유니티의 경우 빈 깡통
거리에 따라 폴리곤 숫자를 줄여 물체를 간략하게 표현카메라와
지형을 표현할 때 사용무수한 삼각형의 조합으로 이루어져 있다.x 와 z 축의 정점 간격이 일정하다.덮어질 텍스처의 높이(y축) 정보를 추가하여 저장한다. (height map)X, Z Size 개수만큼 칸을 만들기 위해 정점들을 생성하고 인덱스 버퍼를 통해 연결카메라와
오늘의 목표 FBX 파일을 읽어와 화면에 띄워보자!지금까지 표현한 Object들은 하드코딩으로 직접 모양을 만든 Object들이었다.하지만 실제 실무에서는 그런 경우는 거의 드믈고 미리 만들어진 Object를 읽어와 사용한다.FBX 파일은 Material, Mesh,
프레임 단위로 된 여러개의 그림을 빠르게 재생하여 움직이는 것 처럼 보이게 하는 기법3D 물체에 대한 애니메이션 구동을 위해 프레임 단위로 정점을 만들게 되면 매우 많은 정점을 요구하게 되므로 적절하지 않다.따라서 3D게임의 애니메이션 구동은 뼈대를 사용해 피부가 뼈대