
초기 개발 중인 게임 *Around The World*의 하늘과 구름을 더 자연스럽게 보이도록 조정했다. 개발자 토마스 텐 케이트(Thomas ten Cate)는 구름의 빛 산란, 대기 산란, 수평선, 톤 매핑과 천체 움직임을 손봤다.
이전 작업에서 사용한 Povray 조회표는 구름 안에서 빛이 여러 번 산란되는 현상을 구현하지 못했다. 이를 확인하려고 특정한 구형 구름만 처리하는 간단한 다중 스레드 몬테카를로 레이 트레이서를 Rust로 작성했다. 새 조회표를 적용하자 구름 전체에 빛이 더 고르게 퍼졌고, 이전에 보이던 금속 같은 느낌이 사라지면서 구름 아래쪽이 밝아졌다.
구름 아래쪽의 법선 방향을 하늘을 향하도록 바꾸는 방법도 적용했다. Godot의 간접광은 환경의 빛 정보를 담은 큐브맵에서 샘플링된다고 이해했기 때문이다. 이 조정으로 구름에 하늘빛이 더해져 푸른 기운이 돌았고, 일몰 때는 직접광의 붉은색과 간접광의 푸른색이 섞여 구름이 분홍빛을 띠었다.
하늘이 태양이 머리 위에 있을 때도 지평선 근처에서 지나치게 노랗게 보이는 문제는 광선 추적 과정에서 연산 순서를 바꿔 완화했다. 다만 수치 적분 단계 수를 늘리면 차이가 사라질 것이라는 예상과 달리 효과가 유지돼, 원인이 완전히 해결됐는지는 불확실하다고 밝혔다. 행성의 실제 지평선과 하늘 셰이더의 지평선이 어긋나 생기는 어두운 띠는 시선 벡터의 수직 성분을 조금 조정해 가리는 방식으로 처리했다.
톤 매핑은 Godot의 Filmic을 흰색 기준점 2.0으로 설정했다. Reinhard는 너무 어둡고 ACES와 AgX는 채도가 지나치게 낮았다는 것이 선택 이유다. Godot이 사진처럼 사실적인 렌더링에 권하는 기준점은 최소 6.0이지만, 그 설정에서는 화면 전체가 더 어두워졌다고 설명했다. 톤 매핑에 맞춰 장면 조명도 다시 조정했으며, 하늘 밝기를 절반으로 낮췄다.
낮과 밤, 계절과 위치에 따른 일출·일몰, 달의 움직임과 위상은 엔진 안에 행성계 모형을 만들어 계산했다. 엔진이 행성 표면의 관측자 관점에서 천체의 위치를 역산하도록 했고, 완성한 모형은 디버깅에도 활용했다. 게임은 현재 초기 개발 단계다. 프로젝트 소개는 Around The World 페이지, 앞선 구름 작업은 이전 글에서 확인할 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요