Graphics 5

[DirectX11] FBX, CPU Skinning

1. 개요https://yeoul0714.tistory.com/55 [DirectX11] FBX SDK적용, 컴파일 옵션 /Md /Mt1. 개요우리는 지금까지의 프로젝트에서 OBJ Parser를 만들고 그것을 Rendering Pipeline에 연결해서 OBJ를 읽고 Rendering하는 시스템을 구축했습니다. https://yeoul0714.tistory.com/22 [DX11] Obj 파일 Parsing후 Pipe linyeoul0714.tistory.com 지난번엔 FBX파일을 읽어오는 SDK를 적요하는 방법에 대해서 알아보았습니다. 이번엔 FBX파일을 Rendering Pipeline에 맞게 데이터를 가공해 Rendering하고, CPU Skinning에 대해서 알아볼것입니다. 2. Bone의 계..

DirectX11 2025.05.09

[DX11] Light Culling

1. 개요 컬링(Culling)3D 그래픽스 및 게임 개발에서 불필요한 연산을 줄이기 위해 사용되는 최적화 기법입니다. 기본적으로 "필요 없는 것을 걸러내는" 과정을 의미합니다. 지난번 Point Light구현시에 광원의 최대 수를 제한한적이 있습니다. 그러나 우리 게임 월드에서는 이보다 많은 빛이 Rendering될 수 있고, 이에 대한 대응도 필요합니다. 이번 시간엔 대응 하는 방법을 적용해보려고 합니다. https://yeoul0714.tistory.com/24 [DX11] Point Light 구현하기 (내적, 정사영)1. 개요 게임에서 빛은 매우 중요합니다. 빛을 이용하면 다양한 분위기도 표현이 가능하고, 다양한 연출도 가능하게 합니다. 그렇다면 DX에서는 이 Point Light를 어떻게 구현..

DirectX11 2025.04.12

[DX11] Obj 파일 Parsing후 Pipe line Binding

1. DX에서 오브젝트를 Rendering하는 것은 매우 번거롭다.우리는 DX에서 물체를 렌더링해 주기 위해서는 정점 정보를 하나하나 직접 입력을 해주어야 했습니다.이것은 매우 번거로운 작업이고 단순히 정육면체를 렌더링하기 위해서도 수많은 정점이 필요합니다. 심지어 Texture를 Mapping 해야 해서 UV 좌표까지 들어가게 된다면 정점 양은 더욱 늘어나게 됩니다.심지어 좌표계까지 고려해서 정점들의 순서를 맞추거나 Index 버퍼를 만들어주어야 합니다.이렇듯 정점을 수작업으로 입력해서 오브젝트를 그리는 것은 매우 번거롭습니다. 아래 사진과 같이 단순한 사과 오브젝트에 들어가는 정점만 해도 6000개가 넘습니다.  이러한 오브젝트를 수작업으로 정점을 넘겨주는 것은 사실상 불가능에 가깝습니다.  2. O..

DirectX11 2025.04.07

[DX11] 안개 구현: Render Path 분리 (Full Quad Rendering)

1. 개요이번엔 Fog를 구현하는 방법에 대해 알아보도록 하겠습니다.아래는 Epic Games에서 제공하는 이미지입니다.Fog를 이용하면 아주 자연스럽고 멋진 3D 세상을 구현할 수 있습니다.  2. Full Quad Rendering을 통한 구현우선은 우리가 기본적으로 Rendering하던 방식에서 벗어나 화면을 덮는 Full Quad를 통해 전달해야 합니다.그런데 어째서 Full Quad라는 매개체를 이용해야 하는 것일까요?비유를 통해 그 이유를 알아보도록 합시다.우리가 지금 쓰는 방식인 Forward Rendering은 각 객체들을 화면에 직접 그리는 방식입니다.만약 안개를 그리고 싶다면 화면에 물체들과 안개를 같이 그려야 합니다.그러나 이 방식보다는 우리가 그리고 싶은 물체를 우선적으로 그린 뒤 ..

DirectX11 2025.04.05

[DX11] PIE Mode, Shallow/Deep Copy (깊은 복사/ 얕은 복사)

1. 개요 우리가 게임 엔진을 보게 된다면 PIE 모드 (Play In Editor) 모드가 존재합니다.PIE 모드의 존재로 인하여 개발자는 굳이 빌드를 하지 않더라도게임 환경 안에서 빠르게 테스트를 할 수 있는 장점이 있습니다.이번엔 DX11을 이용한 엔진 개발에서 PIE 모드를 구현하며 얻은 지식을 공유하고자 합니다.   2. Unreal Engine 구조우선 언리얼 엔진을 카피하는 방식으로 개발을 진행하고 있기 때문에 언리얼 엔진의 계층 구조를 알아야 합니다. 사실 World는 WorldContext라는 Class에 의해서 한 번 더 Wrapping 됩니다.(World의 상태를 나타내는 Enum값 소유 PIE,Editor)언리얼 엔진에는 World가 있고 World는 Level을 가지고 있고,  L..

DirectX11 2025.04.03