Files
2nd/10_Wiki/Topics/Unity.md
T
2026-05-02 23:33:34 +09:00

45 lines
4.1 KiB
Markdown

---
id: [[P-Reinforce|P-Reinforce]]-AUTO-6033D2
category: Unified
confidence_score: 0.90
tags: [auto-reinforced]
last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - Unity"
---
# [[Unity|Unity]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> Unity는 2D 및 3D 프로젝트를 개발할 수 있는 소프트웨어 엔진 및 플랫폼입니다 [1]. 그래픽 렌더링 파이프라인, 물리 시스템, 씬(Scene) 및 게임 오브젝트(GameObject) 구성을 지원하며, 높은 그래픽 성능을 달성하기 위한 다양한 도구를 제공합니다 [1, 2]. 특히 화면에 기하학적 구조를 그리기 위해 그래픽 API에 명령을 내리는 드로우 콜([[Draw Call|Draw Call]])과 렌더 상태 변경(Render-[[State|State]] changes)을 최적화하는 아키텍처가 핵심적으로 다뤄집니다 [3, 4].
## 📖 구조화된 지식 (Synthesized Content)
- **드로우 콜(Draw Calls) 및 성능 최적화**
Unity는 기하학적 구조, 텍스처, 셰이더 등의 정보를 그래픽 API에 전달하여 화면을 그리기 위해 드로우 콜을 발생시킵니다 [3]. 재질을 변경하는 등의 렌더 상태([[Render State|Render State]]) 변경 과정은 CPU 자원을 매우 많이 소모하므로, 드로우 콜의 총 횟수를 줄이고 렌더 상태 변경이 적게 일어나도록 호출을 구성하는 것이 성능 최적화의 핵심입니다 [4, 5].
- **드로우 콜 최적화 기법**
Unity는 드로우 콜과 렌더 상태 변경을 최적화하기 위해 다음과 같은 내장 방법들을 제공합니다 [2].
- **GPU 인스턴싱(GPU [[Instancing|Instancing]]):** 나무나 덤불처럼 씬에 반복적으로 나타나는 동일한 메쉬의 여러 복사본을 동시에 렌더링합니다 [2].
- **드로우 콜 배칭(Draw Call [[Batching|Batching]]):** 움직이지 않는 정적 게임 오브젝트들의 메쉬를 사전에 결합하는 '정적 배칭(Static batching)'과, CPU에서 동일한 속성을 가진 정점들을 그룹화하여 한 번의 드로우 콜로 렌더링하는 '동적 배칭(Dynamic batching)'이 있습니다 [2].
- **수동 메쉬 결합:** `Mesh.CombineMeshes` 함수를 사용하여 다수의 메쉬를 수동으로 단일 메쉬로 병합해 한 번의 호출로 렌더링합니다 [2].
- **SRP 배처(SRP Batcher):** 스크립터블 렌더 파이프라인(SRP) 환경에서, 동일한 셰이더 변형(Shader variant)을 사용하는 재질에 대해 드로우 콜을 준비하는 CPU 소요 시간을 줄여줍니다 [2].
- **최적화 적용 우선순위**
여러 최적화 기법이 중복으로 설정될 경우, Unity는 가장 높은 우선순위의 방법을 적용합니다. 우선순위는 1. SRP 배처 및 정적 배칭, 2. GPU 인스턴싱, 3. 동적 배칭 순입니다 [6, 7]. 예를 들어, 객체에 정적 배칭이 성공적으로 적용되면 해당 객체의 GPU 인스턴싱은 비활성화됩니다 [7].
- **외부 도구와의 연동**
[[Needle Engine|Needle Engine]]과 같은 도구와 함께 사용될 때, 성능 문제나 텍스처 누락 등을 해결하기 위해 Unity 환경 내에서 "Copy Project Info Into [[CLIP|CLIP]]board" 기능을 사용하여 특정 설정 상태를 외부로 복사하고 디버깅할 수 있습니다 [8].
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행.
## 🔗 지식 연결 (Graph)
- **Related Topics:** GPU Instancing, Draw Call Batching, Scriptable Render Pipeline (SRP), GameObject
- **Projects/Contexts:** [[Needle Engine|Needle Engine]], Optimizing draw calls
- **Contradictions/Notes:** Unity는 여러 드로우 콜 최적화 옵션을 지원하지만 기법 간에 충돌이 발생할 수 있습니다. 렌더러가 인스턴싱 셰이더를 사용하더라도 정적 배칭(Static batching)이 적용되는 경우 Unity는 자동으로 GPU 인스턴싱을 비활성화하며, 인스펙터(Inspector) 창에 정적 배칭을 끄라는 경고 메시지를 표시합니다 [7].
---
*Last updated: 2026-04-19*
---