본문 바로가기
알아두면 좋은것들

03.05 (TIL)

by 오랑이귀엽다 2024. 3. 5.

컬링(Culling) 종류와 사용 이유

 

컬링은 렌더링 과정에서 불필요한 오브젝트를 제외시켜 성능을 최적화하는 기법입니다. 주로 두 가지 종류의 컬링이 사용됩니다:

  1. 프러스텀 컬링(Frustum Culling): 카메라의 시야각 안에 들어오지 않는 오브젝트를 렌더링에서 제외하는 기법입니다. 카메라의 시야 프러스텀(Frustum) 밖에 위치한 오브젝트는 화면에 표시되지 않으므로, 이를 렌더링 대상에서 제외하여 성능을 향상시킵니다.
  2. 오클루전 컬링(Occlusion Culling): 다른 오브젝트에 의해 가려져 보이지 않는 오브젝트를 렌더링에서 제외하는 기법입니다. 화면에 직접적으로 보이지 않는 오브젝트는 렌더링 과정에서 제외하여, 필요한 오브젝트의 렌더링에 집중함으로써 성능을 최적화합니다.

사용 이유: 컬링 기법을 사용하면 렌더링해야 할 오브젝트의 수를 줄일 수 있으므로, GPU에 부과되는 부하를 감소시키고 게임의 프레임률을 향상시킬 수 있습니다. 특히, 복잡한 씬이나 대규모 환경을 렌더링할 때 컬링은 성능 최적화에 필수적인 기법입니다.

 

유니티 최적화 기법

 

유니티에서는 다양한 최적화 기법을 통해 게임의 성능을 개선할 수 있습니다. 주요 최적화 기법으로는 다음과 같은 것들이 있습니다:

  • 배치 처리(Batching): 여러 렌더링 작업을 하나의 드로우콜로 합치는 과정으로, 정적 배치와 동적 배치가 있습니다.
  • LOD(Level of Detail): 카메라와의 거리에 따라 오브젝트의 디테일을 조정하여 성능을 최적화합니다.
  • 메모리 관리: 불필요한 알로케이션을 피하고, 오브젝트 풀링을 사용하여 가비지 컬렉션을 최소화합니다.
  • 텍스처 최적화: 텍스처 크기와 포맷을 적절히 선택하고, 필요에 따라 압축하여 메모리 사용량과 로딩 시간을 줄입니다.
  • 코드 최적화: 비효율적인 코드를 개선하고, 빈번한 함수 호출이나 불필요한 계산을 줄입니다.
  • GPU 오버드로우 최소화: 픽셀 셰이더의 복잡성을 줄이고, 불필요한 렌더링 작업을 최소화합니다.

최적화의 중요성: 최적화의 가장 중요한 부분은 게임의 성능을 유지하면서도 최적의 사용자 경험을 제공하는 것입니다. 이를 위해선 게임의 특성과 요구사항을 이해하고, 프로파일링 도구를 사용하여 성능 병목을 정확히 식별한 후 타겟팅된 최적화 작업을 수행하는 것이 중요합니다.

텍스처 포맷 최적화: 텍스처 포맷 최적화는 메모리 사용량을 줄이고, 로딩 시간을 개선하기 위해 사용됩니다. 예를 들어, DXT1, DXT5, PVRTC, ETC 같은 압축 텍스처 포맷은 고품질의 이미지를 유지하면서도 메모리 사용량을 현저히 줄일 수 있습니다. 플랫폼별로 가장 효율적인 텍스처 포맷을 선택하는 것이 중요합니다.

이러한 최적화 기법들은 유니티 프로젝트의 성능을 향상시키고, 다양한 하드웨어에서 게임이 원활하게 실행될 수 있도록 도와줍니다.

'알아두면 좋은것들' 카테고리의 다른 글

03.07 (TIL)  (0) 2024.03.07
03.06 (TIL)  (0) 2024.03.07
03.04 (TIL)  (0) 2024.03.05
02.29 (TIL)  (0) 2024.03.05
02.28 (TIL)  (2) 2024.02.28