Hacker News기타

게임 엔진에서 현실적인 하늘 렌더링하기

원제 Rendering pretty sky in Around The World game

106 포인트댓글 7
Key Point

게임에서 구름과 하늘을 물리 기반으로 렌더링하는 실무 기법들과 각 문제에 대한 구체적인 해결책을 단계별로 보여주는 개발자 맞춤형 사례 연구다.

핵심 요약

  • Rust로 몬테카를로 광선 추적기를 직접 구현해 POV-Ray가 다중산란을 시뮬레이션하지 않음을 확인했고, 이를 반영한 새로운 조회 테이블로 구름의 밝기와 조명이 더 균일해졌다.
  • 구름이 하늘의 간접광(파란색)을 받도록 표면 법선을 아래에서 위로 향하게 조정하면, 낮에는 파란 톤이, 일몰에는 핑크 톤이 생겨 현실적인 모습이 된다.
  • 대기 산란 계산 순서를 '외부산란 후 내부산란' 형태로 바꾸니 태양이 머리 위에 있을 때도 수평선 근처가 부자연스럽게 노란색으로 보이는 현상이 개선됐다.
  • 행성이 지구보다 75배 작아 대기 곡률이 강하므로, 하늘 셰이더의 수직 성분에 작은 값을 더하고 정규화하는 방식으로 지평선의 검은띠를 없앴다.
  • Filmic 톤매퍼(화이트 포인트 2.0)를 적용해 HDR 값을 LDR로 변환하면서 구름의 부드러운 표현력을 향상시켰다.
  • 행성과 달이 천체의궤 모형처럼 공전하고 자전하도록 엔진에 구현한 뒤, 역 변환으로 표면의 관찰자 시점에서 천체의 위치를 계산해 낮과 밤의 주기를 표현했다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗