Postingan ini belum diterjemahkan ke Bahasa Indonesia. Menampilkan teks asli.

렌더링 전략과 라이팅과 쉐도우를 구현했습니다.
렌더링 전략은 유니티처럼 3가지 전략으로 가려고 합니다.
Forward, Forward+, Deffered... 일단 1차로 전통적인 Forward를 구현했습니다.
여기서 Forward+는 모바일이나 플레이스테이션 같은 콘솔에서 많이 사용하는 Tile Rendering방식입니다. 장점은 라이팅을 몇십개 이상 또는 백개 이상 사용하면서 디퍼드 렌더링의 단점인 반투명 오브젝트를 렌더링하려고 생쑈를 안해도 된다는 점입니다.
선형 색 공간에서 라이팅을 계산하고 sRGB 백버퍼에서 감마를 입히는 방식으로 기초적인 색감을 잡아줍니다.
기본 라이트 쉐이딩은 램버트 기반 PBR을 사용합니다. 언리얼 같은거 만드는거 아니니까 적당히 깔끔하고 적당히 가벼운 라이팅으로 갑니다.
주변광도 당연히 넣었고요.. 반구 라이팅으로 하늘과 땅색을 라이트에 먹을수 있도록 했습니다.
넣는김에 톤매핑 역시 넣었습니다. ACES 근사로 넣었는데요.. 옛날에 ACES 근사를 보고 구현한적이 있는데 지금 40대 후반이 되니 머리가 굳어서 다시 보기도 싫고 그냥 AI에게 ACES근사로 톤매핑으로 가자고 설계만 넘겨서 구현했습니다.

그림자 역시 넣었는데.. 그냥 CSM으로 일괄 통합해서 한동안 가려고 합니다.
Cascade Shadow Mapping이라고 하는데요.. 3 or 4 단계의 카메라를 만든후에 각기 다른 세팅값으로 먼곳, 중간1, 중간2, 가까운곳 4곳을 따로 쉐도우를 만든후에 나중에 합치는 방식입니다. 가까울수록 더 해상도가 높은 쉐도우 맵(텍스쳐)를 생성해서 디테일한 그림자를 보여주고 멀수록 낮은 해상도의 쉐도우 맵으로 대충 흐릿한 그림자를 렌더링하는 방식입니다.
CSM의 장점으로는 과거 한장의 쉐도우 맵으로 라이트 시점의 카메라 왜곡하고 별생쑈를 해서 어떻게 해서든 먼곳을 보여주면서 가까운곳을 디테일하게 보여주려고 하는 노력을 할필요가 없다는 점입니다.
단점으로는 3 or 4개의 카메라로 그림자를 그리니 오브젝트당 렌더링을 x3 또는 x4배로 횟수가 늘어난다는 점입니다.
과거에 하드웨어 사양이 낮을때는 문제가 좀 되었는데 .. 요즘에는 모바일도 이정도는 커버합니다.
렌더링 된 모습이 깔끔한데요.. MSAA 4x로 안티 앨리어싱까지 구현해서 넣었습니다.
위에 모델링을 Shader Ball이라고 하는데요. https://github.com/usd-wg/assets 에서 다운받아서 fbx로 포멧 변경하고 넣었습니다 -_-.. 혹시 몰라 출처를 밝힙니다.
감사합니다.
- 추가로 아키텍쳐 문서를 AI를 활용해서 만들어 봤습니다. 관심있으시면 다운로드 받아서 보시면 대략 구조를 알수 있을것 같습니다.