Unity 공식 가이드 문서 요약 및 해설
이 문서는 Unity의 빌트인 렌더 파이프라인에서 포워드 렌더링 경로에 대해 설명합니다. 포워드 렌더링은 각 오브젝트가 영향을받는 조명에 따라 여러 번 렌더링됩니다.
포워드 렌더링 개요
- 오브젝트 렌더링: 각 오브젝트는 영향을 미치는 광원에 따라 한 번 이상의 패스에서 렌더링됩니다.
- 광원 처리:
- 가장 밝은 광원은 픽셀당 렌더링됩니다.
- 점 광원은 버텍스당 최대 4개까지 처리됩니다.
- 나머지 광원들은 스피리컬 하모닉스(SH)를 통해 빠르게 처리됩니다.
결정 요인
렌더 모드에 따라 광원의 처리 방식이 달라집니다: |렌더 모드|픽셀당 / 버텍스당| |---|---| |Not Important|항상 버텍스당 또는 SH| |가장 밝은 방향광원|항상 픽셀당| |Important|항상 픽셀당|
렌더링 과정
- 베이스 패스:
- 픽셀당 방향 광원 하나와 모든 SH/버텍스 광원으로 오브젝트를 렌더링합니다.
- 이 패스에서는 섀도우가 있을 수 있습니다.
- 추가 패스:
- 각 추가 픽셀당 광원에 대해 추가 패스가 필요하며, 이 경우 기본적으로 섀도우가 지원되지 않습니다.
성능 고려 사항
- 픽셀당 동적 조명: 많은 픽셀에 의해 렌더링이 증가하므로, 저사양 기기에서는 사용을 최소화해야 합니다.
- 정적 오브젝트는 라이트맵으로 처리하여 성능을 향상시킵니다.
최적화 전략
광원의 중요성 설정
게임 컨텍스트에 따라 광원의 중요성을 조정함으로써 성능을 최적화할 수 있습니다. 예를 들어, 자동차 경주 게임에서 헤드라이트는 중요한 광원으로 설정해야 합니다.
스피리컬 하모닉스 광원
SH 광원은 빠르게 렌더링되지만, 픽셀 대신 버텍스에서 계산되므로 한계가 있습니다. 이들은 동적인 오브젝트에 유용하지만, 조명이 부정확할 수 있습니다.
활용 예제
자동차 경주 게임
플레이어의 차량이 헤드라이트를 켜고 어둠 속에서 이동할 때: - 헤드라이트: 중요한 광원으로 설정하여 뛰어난 효과를 제공. - 배경 조명: 덜 중요한 광원으로 설정하여 성능을 최적화.
FPS 게임
적을 조명할 때: - 포커스 조명: 적의 위치를 명확하게 드러내기 위해 중요한 광원으로 설정. - 환경 조명: 촘촘히 분산되는 광원으로 설정하여 게임의 몰입감을 높임.
결론
포워드 렌더링은 오브젝트와 광원의 상호작용을 기반으로 하여 효과적인 시각적 결과를 제공합니다. 올바른 광원 설정과 렌더링 패스 최적화가 성능과 그래픽 품질을 극대화하는 열쇠입니다.