--- id: P-REINFORCE-AUTO-3EE85A category: "10_Wiki/πŸ’‘ Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - WebGL λͺ¨λ°”일 GPU μ„±λŠ₯ 관리" --- # [[WebGL 모ᄇᅑ알 GPU ᄉα…₯α†Όα„‚α…³α†Ό α„€α…ͺᆫ라|WebGL λͺ¨λ°”일 GPU μ„±λŠ₯ 관리]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > WebGL λͺ¨λ°”일 GPU μ„±λŠ₯ κ΄€λ¦¬λŠ” 처리 λŠ₯λ ₯κ³Ό λ©”λͺ¨λ¦¬ μš©λŸ‰μ΄ μ œν•œμ μΈ λͺ¨λ°”일 λ””λ°”μ΄μŠ€ ν™˜κ²½μ—μ„œ 3D μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λΆ€λ“œλŸ½κ²Œ ꡬ동될 수 μžˆλ„λ‘ λ Œλ”λ§ λΆ€ν•˜λ₯Ό μ€„μ΄λŠ” 기술적 κ³Όμ •μž…λ‹ˆλ‹€. λͺ¨λ°”일 λΈŒλΌμš°μ €λŠ” 처리 κ°€λŠ₯ν•œ 폴리곀 μˆ˜μ™€ λ“œλ‘œμš° 콜(Draw Call)에 λšœλ ·ν•œ ν•œκ³„κ°€ 있으며, 이λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ 셰이더 정밀도 쑰절, ν…μŠ€μ²˜ μ••μΆ•, 배터리 μ†Œλͺ¨ 관리 λ“±μ˜ 닀각적인 μ΅œμ ν™”κ°€ μš”κ΅¬λ©λ‹ˆλ‹€ [1-4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **λͺ¨λ°”일 ν•˜λ“œμ›¨μ–΄μ˜ λ Œλ”λ§ 및 λ©”λͺ¨λ¦¬ ν•œκ³„:** λͺ¨λ°”일 λΈŒλΌμš°μ €(iOS Safari, Chrome Mobile λ“±)λŠ” μž₯λ©΄λ‹Ή 5λ§Œμ—μ„œ 10만 개의 폴리곀을 μ²˜λ¦¬ν•˜λŠ” 것이 ꢌμž₯되며, λ“œλ‘œμš° 콜이 1,000~2,000회λ₯Ό λ„˜μ–΄κ°€λ©΄ CPU 병λͺ© ν˜„μƒμœΌλ‘œ μΈν•œ μ„±λŠ₯ μ €ν•˜κ°€ λˆˆμ— λ„κ²Œ λ‚˜νƒ€λ‚©λ‹ˆλ‹€ [2, 3]. 특히 2~4GB의 μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬λ₯Ό κ°€μ§„ κΈ°κΈ°μ—μ„œλŠ” ν…μŠ€μ²˜ λ©”λͺ¨λ¦¬κ°€ 500MBλ₯Ό μ΄ˆκ³Όν•  경우 κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(GC)으둜 μΈν•œ 멈좀 및 ν”„λ ˆμž„ λŠκΉ€ ν˜„μƒμ΄ μ‹¬κ°ν•˜κ²Œ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€ [4]. * **셰이더 및 데이터 정밀도 μ΅œμ ν™”:** λͺ¨λ°”일 GPUλŠ” `mediump` 정밀도 처리 속도가 `highp`보닀 μ•½ 2λ°° λΉ λ₯΄λ―€λ‘œ, 깊이 κ³„μ‚°μ΄λ‚˜ μœ„μΉ˜ 정보 λ“± ν•„μˆ˜μ μΈ 경우λ₯Ό μ œμ™Έν•˜κ³ λŠ” 기본적으둜 `mediump` 정밀도λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μœ λ¦¬ν•©λ‹ˆλ‹€ [1]. λ˜ν•œ, λ²„ν…μŠ€ 셰이더와 ν”„λž˜κ·Έλ¨ΌνŠΈ 셰이더 간에 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” Varying λ³€μˆ˜μ˜ κ°œμˆ˜λ„ λͺ¨λ°”일 기기의 ν•œκ³„λ₯Ό κ³ λ €ν•˜μ—¬ 3개 μ΄ν•˜λ‘œ μ΅œμ†Œν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€ [1]. * **ν…μŠ€μ²˜ 및 λ Œλ”λ§ μ˜΅μ…˜ 쑰율:** μ—¬λŸ¬ ν…μŠ€μ²˜λ₯Ό ν•˜λ‚˜λ‘œ κ²°ν•©ν•˜λŠ” ν…μŠ€μ²˜ μ•„ν‹€λΌμŠ€(Texture Atlas)λ₯Ό ν™œμš©ν•˜λ©΄ λͺ¨λ°”일 GPUμ—μ„œ 큰 뢀담이 λ˜λŠ” ν…μŠ€μ²˜ 바인딩 μ˜€λ²„ν—€λ“œλ₯Ό 획기적으둜 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€ [5]. μΆ”κ°€μ μœΌλ‘œ Basis Universalκ³Ό 같은 νˆ΄μ„ μ΄μš©ν•΄ λͺ¨λ°”일 νŠΉν™” 포맷(iOS의 PVRTC, μ•ˆλ“œλ‘œμ΄λ“œμ˜ ASTC λ“±)으둜 νŠΈλžœμŠ€μ½”λ”©ν•˜μ—¬ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ 쀄여야 ν•˜λ©° [6], μ„€λ„μš° 맡의 ν¬κΈ°λŠ” λͺ¨λ°”일에 맞게 512μ—μ„œ 1024 μ‚¬μ΄λ‘œ μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€ [7]. λͺ¨λ°”일 κΈ°κΈ°μ—μ„œ 60fpsλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” κΈ°λ³Έ λ„€μ΄ν‹°λΈŒ μ•ˆν‹°μ•¨λ¦¬μ–΄μ‹±(MSAA)을 λΉ„ν™œμ„±ν™”ν•˜κ³ , κ·Έ λŒ€μ‹  FXAA와 같은 포슀트 ν”„λ‘œμ„Έμ‹± 기반의 μ•ˆν‹°μ•¨λ¦¬μ–΄μ‹±μ„ μ μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€ [8]. * **μ „λ ₯ 보쑴 및 μƒνƒœ 관리:** 씬(Scene)이 정적일 λ•Œ λ§€ ν”„λ ˆμž„ λ Œλ”λ§μ„ ν•˜μ§€ μ•ŠλŠ” μ˜¨λ””λ§¨λ“œ(`frameloop="demand"`) λ Œλ”λ§ 방식을 μ‚¬μš©ν•΄ λͺ¨λ°”일 λ””λ°”μ΄μŠ€μ˜ 배터리 μ†Œλͺ¨λ₯Ό 쀄여야 ν•©λ‹ˆλ‹€ [9]. 이와 ν•¨κ»˜ λͺ¨λ°”일 ν™˜κ²½ νŠΉμ„±μƒ WebGL μ»¨ν…μŠ€νŠΈ μœ μ‹€(Context lost) ν˜„μƒμ΄ λ°œμƒν•  수 μžˆμœΌλ―€λ‘œ, 이λ₯Ό κ°μ§€ν•˜κ³  μžμ—°μŠ€λŸ½κ²Œ 볡ꡬ할 수 μžˆλŠ” 이벀트 λ¦¬μŠ€λ„ˆ μ²˜λ¦¬κ°€ ν•„μˆ˜μ μž…λ‹ˆλ‹€ [10]. * **컬링 λΆ€μž¬ μ‹œ λͺ¨λ°”일 μ„±λŠ₯ 치λͺ…타:** κ°œλ³„μ μΈ μΈμŠ€ν„΄μŠ€μ— λŒ€ν•΄ μ‹œμ•Ό μ ˆλ‘μ²΄ 컬링(Frustum culling)이 이루어지지 μ•Šμ„ 경우, 보이지 μ•ŠλŠ” 객체에 λŒ€ν•œ 정점 μ…°μ΄λ”μ˜ ν–‰λ ¬ 연산이 μΈμŠ€ν„΄μŠ€ μˆ˜μ— λΉ„λ‘€ν•΄ μ„ ν˜•μ μœΌλ‘œ μ¦κ°€ν•˜λ―€λ‘œ, 저사양 λͺ¨λ°”일 κΈ°κΈ°λ‚˜ 톡합 GPU ν™˜κ²½μ—μ„œλŠ” 치λͺ…적인 μ„±λŠ₯ μ €ν•˜λ₯Ό μΌμœΌν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€ [11]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** Draw Calls, [[Texture Atlas|Texture Atlas]], [[셰아ᄃα…₯ α„Œα…₯ᆼ말도 (Mediump_Highp)|셰이더 정밀도 (Mediump/Highp)]], [[Varying Variables|Varying Variables]], [[FXAA|FXAA]] - **Projects/Contexts:** [[Three.js 모ᄇᅑ알 렌ᄃα…₯α„…α…΅α†Ό α„Žα…¬α„Œα…₯ᆨᄒα…ͺ|Three.js λͺ¨λ°”일 λ Œλ”λ§ μ΅œμ ν™”]], [[모ᄇᅑ알 가ᄇᅑᆫ WebGL ᄋᅒ플라케아션 ᄀᅒᄇᅑᆯ|λͺ¨λ°”일 기반 WebGL μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발]] - **Contradictions/Notes:** λͺ¨λ°”일 ν™˜κ²½ μ΅œμ ν™”λ₯Ό μœ„ν•΄ λ‹€μ–‘ν•œ 기법을 λ™μ›ν•˜λ”λΌλ„, ν…μŠ€μ²˜ λ©”λͺ¨λ¦¬λ₯Ό 500MB μ΄ν•˜λ‘œ ν†΅μ œν•˜μ§€ μ•ŠμœΌλ©΄ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(GC) 멈좀 ν˜„μƒμœΌλ‘œ μ΅œμ ν™” νš¨κ³Όκ°€ 상쇄될 수 μžˆμœΌλ―€λ‘œ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ— λŒ€ν•œ μ—„κ²©ν•œ μ œν•œμ΄ μš°μ„ λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ [4]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/WebGL λͺ¨λ°”일 GPU μ„±λŠ₯ 관리.md ---