내 답:
POT 텍스쳐는 가로와 세로의 길이가 2의 거듭제곱인 텍스쳐를 의미합니다. 예를 들어, 256x256, 512x512와 같은 크기입니다. 이러한 형식의 텍스쳐는 그래픽 처리 장치(GPU)에서 더 효율적으로 처리될 수 있습니다. 비POT 텍스쳐에 비해 메모리 사용량을 줄이고, 로딩 시간을 단축시키며, 렌더링 성능을 향상시킬 수 있습니다.
모범 답:
내 답:
아틀라스는 여러 개의 작은 텍스쳐를 하나의 큰 텍스쳐로 합치는 기법입니다. 이 방법을 사용하면 드로우콜을 줄일 수 있으며, 텍스쳐를 교체하는 데 드는 비용을 절감할 수 있습니다. 아틀라스를 사용함으로써 메모리 사용량을 최적화하고, 렌더링 성능을 향상시킬 수 있습니다.
모범 답:
모범 답:
내 답:
드로우콜을 확인하기 위해서는 Unity의 프레임 디버거를 사용할 수 있습니다. 프레임 디버거를 통해 현재 장면에서 발생하는 드로우콜의 수와 세부 정보를 확인할 수 있습니다.
모범 답:
내 답:
Unity 프로파일러는 Unity 애플리케이션의 성능을 분석하고 최적화하는 데 사용되는 도구입니다. CPU 사용량, 메모리 사용량, 드로우콜 수, 네트워크 트래픽 등 다양한 성능 지표를 실시간으로 모니터링할 수 있습니다.
프로파일러를 사용하려면 Unity 에디터의 상단 메뉴에서 Window > Analysis > Profiler를 선택합니다. 프로파일러 창이 열리면, Record 버튼을 클릭하여 애플리케이션의 성능 데이터를 수집하기 시작합니다. 수집된 데이터는 여러 탭으로 구분되어 표시되며, 각 탭에서 세부적인 성능 분석을 진행할 수 있습니다.
모범 답:
모범 답:
모범 답:
모범 답:
내 답:
드로우콜은 GPU에 전송되는 렌더링 명령의 수를 의미합니다. 드로우콜 수를 줄이는 것은 성능 최적화의 핵심 요소 중 하나입니다.
• 배치 처리: 비슷한 렌더링 속성을 가진 메시를 하나의 드로우콜로 묶어 처리합니다.
• 아틀라스 사용: 여러 텍스쳐를 하나의 큰 텍스쳐로 합쳐서 텍스쳐 교체를 줄입니다.
• 동적 배치: 런타임에 객체를 동적으로 배치하여 드로우콜을 줄입니다.
모범 답:
내 답:
Find 함수와 같은 이름 또는 태그를 기반으로 하는 검색 함수는 실행 시간이 오래 걸리고, 성능에 부정적인 영향을 줄 수 있습니다. 특히, Update 함수 내에서 이러한 검색 함수를 사용하는 것은 매 프레임마다 불필요한 검색을 수행하게 되어 성능 저하를 일으킬 수 있습니다.
모범 답:
내 답:
GetComponent와 같은 컴포넌트 검색 함수는 비용이 많이 드는 연산입니다. Update 함수와 같이 매 프레임 호출되는 함수 내에서 GetComponent를 사용하면, 매 프레임마다 비용이 많이 드는 검색을 수행하게 되어 성능 저하를 일으킬 수 있습니다. 따라서, 가능하다면 시작 시점에 한 번 검색하여 결과를 캐싱해두고, 이후에는 캐싱된 값을 사용하는 것이 좋습니다.
모범 답:
[드로우콜 줄여보기]
패키지를 받아 GrassScene에 들어가보면,
풀밭이 있는 것을 확인할 수 있습니다.
현재 이 상태로는 Grass 오브젝트가 너무 많아 성능 저하가 발생하고 있습니다.
(참고 : 다음의 Statistics 창은 Unity 에디터 내 게임 뷰 우측 상단 [Stats] 버튼을 눌러 확인 가능)
1. Grass 오브젝트가 움직이지 않고 있다는 점을 이용하여
Batches를 줄여 프레임을 개선해보세요.
어떻게 했는지 제출답안에 적어주세요.
2. 모든 Grass가 같은 머테리얼과 메쉬를 공유하고 있다는 점을 이용하여
Batches를 줄여 프레임을 개선해보세요.
어떻게 했는지 제출답안에 적어주세요.
3. 1번 방법과 2번 방법의 성능 차이와 어느 상황에 사용하면 좋을 지를 생각하여 서술해주세요.
(Hint : 씬의 GrassSpawner가 아닌 RotatingGrassSpawner를 활성화 시켜 실습해봅시다.
아래와 같이 모든 Grass 오브젝트가 빙글빙글 돌아갈 때는 1번과 2번 방법 중 어느 것을 사용해야 할까요?)