전체 글339 5. FBX 로드 FBX 로드 - 구현은 FBX SDK를 통해 구현했다. - FBX는 내부적으로 많은 정점, 인덱스정보와 텍스쳐, 애니메이션 정보를 들고 있는데, FBX를 로드하는 과정은 이 많은 데이터들을 로드하여 적재적소에 저장하는 과정이라고 볼 수 있다. - FBX는 내부적으로 트리 구조로 되어 있어서 재귀함수를 이용하면 루트 노드부터 순서대로 전체를 탐색할 수 있는데, 이 부분은 DFS를 사용했다. - 셰이더에서 이미지를 입히는 작업과 애니메이션 정보를 불러오는 부분을 이어서 구현할 생각이다. 내일 할 일 - FBX에 텍스쳐 매핑 및 애니메이션 구현 2023. 7. 20. 4. Bloom 구현 Bloom 구현 - Bloom은 이미지에서 밝은 부분을 추출한 후 그 부분을 블러처리하여 부드럽게 만든 이미지를 원본 이미지와 합치는 이미지 후처리 기술이다. - 블러 처리에서 맞닥뜨린 문제점은 한 번의 처리만으로는 부드러워지지 않기 때문에 여러 번 블러처리를 해야 하는데, 이 처리가 화면 전체에 대한 처리이다보니 계산해야 하는 픽셀 수가 많아서 프레임이 확확 떨어지는것이 체감될 정도였다. - 아직 다른 기능들을 추가하지 않은 상태에서 프레임이 많이 떨어지는 것을 방어하기 위해 다운스케일을 하여 픽셀 크기를 키운 후에 블러 처리를 해서 1번의 블러 처리만으로 괜찮은 품질을 만들 수 있도록 개선했다. 내일 할 일 - FBX SDK를 이용한 FBX Loader 구현 2023. 7. 19. 3. Particle System 구현 및 Bloom 구현 중 ParticleSystem 구현 - Compute Shader를 이용하여 구현했다. - 방식은 2D때와 동일하게 CPU에서 점을 넘겨주면 해당 점을 Geometry Shader에서 사각형으로 바꾼 후 Pixel Shader에서 그 사각형에 UV를 매핑하여 사용한다. (이후 움직임은 Compute Shader에서 처리) Bloom 구현 중 - 기존 Deferred->Light->Final->Forward 순서에서 이후 PostProcessing이라는 패스를 추가하여 이 부분에서 Bloom과 각종 후처리 기법들을 사용할 생각이다. - 현재 Bloom에 필요한 구조 작성 및 다운스케일을 테스트 중 2023. 7. 18. 2. Deferred Rendering 구현 및 Blinn Phong 적용 Deferred Rendering 구현 - 이전 2D 포트폴리오에서 Deferred Rendering을 구현한 적이 있어서 그런지 어렵지 않게 구현했다. - 밑바닥부터 다시 구현하다보니 추가해야 하는 클래스들도 많고 값을 누락하는 경우들도 있었는데 디버깅을 통해 어느 부분이 잘못된 부분인지 구별하는 것은 크게 어렵지 않았다. - 문제는 Directional Light는 정상 작동하는데 Point Light와 Spot Light는 제대로 작동하지 않는 것이었다... - Point Light와 Spot Light는 물체의 위치를 기반으로 그리는데 위치 값을 G-Buffer의 Position 텍스쳐로부터 읽어와야 했다. - 결과적으로 빛의 Position이 잘못 전달되고 있었다는 것을 캐치했고 실제로 해당 부.. 2023. 7. 16. 이전 1 ··· 23 24 25 26 27 28 29 ··· 85 다음