Directx11 5

[DirectX11] 포스트프로세싱(PostProcessing) Bloom 구현하기

Bloom을 구현하려면 우선sceneHDR pass -> LDR ToneMapping pass위 과정이 분리 구현 되어있어야한다.이번 글은 해당 내용에 대한 이해가 있다는 것을 바탕으로 한다. Mip (mipmap) Bloom을 구현하기 전에 먼저 Mip의 개념에 대해 복습을 하고 가자. Mip(mipmap)은 같은 텍스처를 여러 해상도로 미리 만들어둔 배열이다. 주로 멀리있는 오브젝트에 텍스처를 샘플링할때 낮은 해상도의 이미지를 사용하여 최적화(앨리어싱 방지 등)를 하는 용도로 사용한다.mip 0 : 1024 x 1024 (원본)mip 1 : 512 x 512mip 2 : 256 x 256mip 3 : 128 x 128mip 4 : 64 x 64... Bloom에서는 이 Mip의 개념..

[DirectX 11] 3D 모델 로드하기 - Static Mesh(정적 메시)

지금까지는 직접 vertex와 index 데이터를 만들어큐브를 그리고 텍스처 맵핑과 라이트 계산을 했다.이제는 실제 게임 개발에 사용할3D 모델들을 로드해서 렌더링해봐야 한다. StaticMesh, Skeletal Mesh(Rigid, Skinned)이렇게 총 3가지를 정리할 예정이며assimp 라이브러리를 사용한다. 이번글은 3D 모델 로드 1단계정적 메시(Static Mesh) FBX 화면 띄우기이다!!! 씬 그래프 (Scene Graph)3D 모델을 화면에 띄우기 위해, 우선 3D 모델들이 어떤식으로 저장되어있는지에 대해 이해하고 있어야한다. 씬 그래프(Scene Graph)는 3D 그래픽스에서 씬(Scene)을 구성하는 모든 오브젝트(카메라, 조명, 메시, 스켈레톤 등)를 부모-자식 관계로 연결..

[DirectX 11] 노말맵(Normal Map)과 기저 공간(Tangent Space)

게임을 개발하는 사람이라면노말맵이라는 것에 대해 들어 보았을 것이다.노말맵은 텍스처의 한 종류로 이름 그대로 법선 벡터가 저장되어있다. 왜 노말맵을 사용할까? 디테일한 음영을 표현해야 할 때 실제 폴리곤의 수를 늘리면vertex와 pixel shader의 실행 횟수도 늘어난다. 그렇다고 삼각형을 줄이면 vertex의 normal까지 줄어들어음영의 디테일이 사라진다. 이때 로우 폴리를 유지한 채 따로 노말맵 데이터를 사용하여 빛의 음영만 디테일하게 표현할 수 있다. Normal Map Texture 노말맵(Normal Map)은 모델 표면 디테일(요철, 굴곡)을 표현하기 위한 텍스처로 실제 지오메트리를 세밀하게 나누지 않고 픽셀 단위의 법선 벡터를 텍스처로 저장해두는 방식이다. 이때 법선 벡터는 접선 ..

[DirectX 11] 텍스처 맵핑 (Texture Mapping)과 DDS 포맷

아티스트가 제작한 3D 모델과 2D 텍스처를 전달받으면프로그래머가 둘을 연결하여 모델에 색상을 입혀야 한다.이 과정을 텍스처 맵핑이라고 한다. 아래 설명은 DirectX 11 기준이다! 텍스처 맵핑 (Texture Mapping)텍스쳐 맵핑은 3D 모델에서 UV 좌표를 따라 텍스처 이미지를 픽셀에 매핑하는 기법이다. 보통 모델 데이터의 vertex마다 텍스쳐 좌표(UV)를 가지고 있으며, 래스터화 과정에서 픽셀 단위로 보간되어 Pixel Shader 단계에서 텍스쳐 이미지를 샘플링한다. UV 좌표 텍스처의 상대적 위치를 0~1로 표현하는 2차원 좌표계로 텍스쳐 크기가 몇 픽셀이든 상관없이 0~1사이의 비율로 위치를 표현한다. DirectX의 UV좌표 (0,0)은 Top-Left이다. 샘플링(..

[DirectX11 자체 엔진] 2D 액션 플랫포머 'Eclipse(이클립스)'

프로젝트 개요게임명 : Eclipse (이클립스)장르 : 2D 플랫포머 액션플랫폼 : PC개발엔진 : 자체엔진 (C++, DirectX 11)작업 기간 : 2025.07.28 ~ 08.14 (약 3주)팀 구성 : 8명 (기획2/ 아트2/ 개발 4)담당 파트 : 엔진 개발 전담/ 클라이언트 - 혼, 보스, 카메라, 연출 Game GitHub GitHub - wooj22/Eclipse: [Friend_Engine] 2D 플랫포머 액션 게임 프로젝트[Friend_Engine] 2D 플랫포머 액션 게임 프로젝트. Contribute to wooj22/Eclipse development by creating an account on GitHub.github.com Engine GitHub추후 엔진 소개글을 꼭...