DirectX 11 3D Project ( Eater )
DirectX 11 Engine Demo (2021.09.06 ~ 2022.07.01)
Graphic 적용 기술
- Hierarchical Z Map Occlusion Culling
[DirectX 11] Hierarchical Z Map Occlusion Culling
Hardware Occlusion Culling 1) 구현 원리 - Occluder가 Rendering 된 상태에서 (Z-Buffer 유지 상태) Occludee를 Rendering 하여Pixel에 그려지는지 테스트 하는 방식. - Low-Poly Data나 Bounding Mesh를 그..
kyuhwang.tistory.com
- Vertex Texture Fetch Skinning Animation Instancing
[DirectX 11] Vertex Texture Fetch Skinning Animation Instancing
Vertex Texture Fetch Skinning Animation Instancing - 현재까지 사용했던 Constant Buffer를 활용한 Skinning Animation은 한계점이 많았다. Constant Buffer를 통한 Skinning이 아닌 Texture Buffer를 활..
kyuhwang.tistory.com
- Bloom
[DirectX 11] Bloom
Bloom - 카메라 렌즈에 빛이 들어올 때 카메라가 100% 정확히 그 빛의 정보를 담아내지 못하기 때문에, 태양과 같이 강렬한 빛을 찍으면 실제로 보이는 빛보다 더 큰 면적으로 찍히게 됩니다. 이런
kyuhwang.tistory.com
- Deferred Fog
[DirectX 11] Deferred Fog
Deferred Fog - 프로젝트 진행중 아트측 요청으로인해 거리기반, 높이기반 Fog가 필요하여 후처리 Fog를 구현하는 도중 움직이는 효과가 있으면 조금 더 자연스럽겠다는 생각에 Perin Noise 3D Texture를 활
kyuhwang.tistory.com
- Rim Light
[DirectX 11] Rim Lighting
Rim Lighting - 프로젝트 진행중 아트측 요청으로 배경과 캐릭터 간의 구분을 위해 Rim Lighting을 추가해달라는 요청이 있어서 추가하게 되었다. - 적용을하다 보니 구분을 위해 사용함과 동시에 Noise T
kyuhwang.tistory.com
- Hardware Instancing
[DirectX 11] Hardware Instancing
Hardware Instancing - Hareware Instancing이란 Second Vertex Buffer를 활용하여 해당 Vertex Buffer를 필요로하는 Instance들의 추가적인 변환 Data를 Instance Buffer를 통해 Vertex Shader 측에서 한번의 Dra..
kyuhwang.tistory.com
- Deferred Rendering
[DirectX 11] Deferred Rendering GBuffer
Deferred Rendering Rendering 방식 - Forward의 경우한개의 RenderTarget을 사용하여 각각의 오브젝트를 각각 라이트 연산을 하는 방식. - Deferred는 여러개의 RenderTarget을 사용하여 각각의 오브젝트를 해당..
kyuhwang.tistory.com
- Order Independent Transparency
[DirectX 11] Order Independent Transparency
CPU Sorting Transparency - DirectX 11의 Blend State를 이용해 Output Merge에 바인딩을 하여 Blending을 일반적인 Alpha Blending 할 경우를 생각해보면 가려지는 부분은 그릴 필요가 없기 때문에 Pixel에 그리..
kyuhwang.tistory.com
- Particle System
[DirectX 11] Particle System
Particle System - Unity Particle System을 참고하여 현재 프로젝트에서 필요한 기능 위주로 제작. - 현재 MaxParticle 개수대로 만들어 두고 파티클을 사용하고 있다. - LifeTime Option에 따른 Animation 분기..
kyuhwang.tistory.com
- Physically Based Rendering
[DirectX 11] PBR (Physically Based Rendering)
BRDF ( Bidirectional Reflectance Distribution Function ) - "양방향 반사율 분포 함수" 라고 하며, Diffuse BRDF와 Specular BRDF로 나뉜다. - BRDF의 조건 1) 반사율 분포를 출력으로 내뱉는다. 2) 양방향성을..
kyuhwang.tistory.com
- Image Based Lighting
[DirectX 11] IBL (Image Based Lighting)
Diffuse Irradiance - 직접적인 분석 조명이 아닌 주변 환경을 하나의 큰 광원으로 간주해 조명하는 방식이다. - 일반적으로 조명 방정식에서 직접 사용할 수 있는 환경맵을 조작해 조명 방정식에서
kyuhwang.tistory.com
- Fast Picking (Object ID Picking)
[DirectX 11] Fast Picking (Object ID Picking)
Object ID Picking - Object Picking을 하기위해선 화면상의 현재 Mouse Position에 위치하는 Face를 모두 검사하는 방식을 사용했었는데, 생각해보니 굳이 CPU 측에서 모든 Object의 Face를 검색하는 것보단 간단..
kyuhwang.tistory.com
- SSAO
[DirectX 11] Screen Space Ambient Occlusion
SSAO Screen Space에서 화면에 보이는 오브젝트만 Ambient Occlusion을 통해 특정 점을 기준으로 구를 그려 한번씩 체크하여 다른 점을 발견하면 그 점에 대해 차폐됬다고 판단하여 어둡게 처리하는 방식.
kyuhwang.tistory.com
- FXAA
[DirectX 11] Deferred Rendering FXAA
Deferred Rendering MSAA - 기존 Forward Rendering에선 문제없이 사용하였던 MSAA를 Deferred Rendering에선 여러개의 RenderTarget에 Anti-Aliasing 처리를 하면 안되기 때문에 다른 방식으로 처리를 해야한다..
kyuhwang.tistory.com
- Terrain Mesh Blending
[DirectX 11] Terrain Mesh Blending
Terrain Mesh Blending - 현재 프로젝트 진행중 Unreal Data를 이용하여 Terrian Material Layer 들의 Mask Image와 각각의 Material Texture을 이용하여 Texture Blending을 한다. - 현재 프로젝트에서 사용하..
kyuhwang.tistory.com
- Tone Mapping
[DirectX 11] Tone Mapping
kyuhwang.tistory.com
- Gamma Correction
[DirectX 11] Gamma Correction
Gamma Correction - 일반적으로 Texture 데이터는 GammaEncode 되어서 저장되어 있으므로 Gamma Correction을 통해 Light 연산을 할 때에는 Linear Space로 변환을 하여 연산을 해주어야 GammaDecode 상태로 색상..
kyuhwang.tistory.com
- Normal Mapping
[DirectX 11] Normal Mapping
Normal Mapping Normal Map을 이용한 접선 공간에서의 수직 축인 Normal을 추출하여 Light 연산을 하는 방식이다. 기존 World 기준 Normal값을 이용하여 Tangent를 추출해야하는데, 삼각형을 이루는 점 3개를 통
kyuhwang.tistory.com
- Shadow Mapping
[DirectX 11] Shadow Map
Shadow Map 기존 오브젝트 Rendering을 하기 전 Pass에서 Camera 기준이 아닌 Directional Light 기준 View, Projection을 이용하여 투영해서 Depth를 찍어둔 후 바인딩된 ShaderResourceView를 참조하여 Lighting..
kyuhwang.tistory.com
- Skinning Animation
[DirectX 11] Skinning Mesh
Skinning Mesh 이전 Static Mesh는 Vertex로 이루어진 Face를 이어 붙여 해당 Object의 World Matrix를 곱하여 출력을 하지만 Skinning Mesh는 조금 많이 다르다. 일단 Skinning Mesh의 Vertex는 영향을 받는 Bone..
kyuhwang.tistory.com
'Project' 카테고리의 다른 글
[Project] DirectX 11 3D Mini Project (0) | 2022.01.07 |
---|---|
[Project] DirectX 2D Mini Project (0) | 2021.12.19 |
[Project] Win API Mini Project (0) | 2021.12.18 |