Toy project to learn OpenGL & Graphics

main

OpenGL과 여러 실시간 렌더링 기술들을 배우고 적용해보기 위한 프로젝트입니다. OpenGL 4.6(glfw)을 활용해 C++로 작성하였습니다.deferred rendering, SSR, shadow mapping, tessellation, normal mapping 등 다양한 렌더링 기술들을 학습할 수 있는 기회가 되었습니다.

 

최적화를 위해 cluster shading, viewcone을 이용한 culling, LOD 를 학습하고 적용했습니다. 특히 cluster shading을 적용해 65,536 개의 동적 광원의 lighting을 약 56ms 만에 달성할 수 있었습니다.

 

Keyword : clustered deferred rendering, SSR, Shadow map, PCF, Bloom effect, Normal mapping, tessellation

 

Demo : https://www.youtube.com/watch?v=rZhjAB3UKO8

주요 기능

Composition of gBuffer

buffersRGBA
PositionMetalPosition XPosition YPosition ZMetal
NormalRoughNormal XNormal YNormal ZRough
AlbedoSpecAlbedo RAlbedo GAlbedo BAO

Cluster shading

Base Profile Screenshot 2022.06.14 - 15.32.56.62Base Profile Screenshot 2022.06.14 - 15.33.06.26

[성능 : light culling & lighting in 4.13ms]

ssr_flatssr_wave

bloom

culling

어려웠던 점

TODO