--- id: wiki-2026-0508-vertex-shader title: Vertex Shader category: 10_Wiki/Topics_Art status: needs_review canonical_id: self aliases: [P-REINFORCE-AUTO-E201D0] duplicate_of: none source_trust_level: A confidence_score: 0.9 tags: [auto-reinforced] raw_sources: [] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Vertex Shader" inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Vertex Shader]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > λ²„ν…μŠ€ 셰이더(Vertex Shader)λŠ” λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈμ—μ„œ 정점(Vertex)의 연산을 μ²˜λ¦¬ν•˜λŠ” 셰이더 λ‹¨κ³„μž…λ‹ˆλ‹€ [1, 2]. 주둜 μΈμŠ€ν„΄μŠ€ν™”λœ 메쉬(Instanced Mesh) 기반의 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ²˜λ¦¬ν•˜κ±°λ‚˜, 메쉬 λ°μ΄ν„°μ˜ 볡제 없이 λ¬΄μž‘μœ„ μΆ•μ²™ 및 νšŒμ „ 등을 절차적으둜 λ³€ν˜•ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€ [3, 4]. κ³„μ‚°λœ λ°μ΄ν„°λŠ” Varying λ³€μˆ˜λ₯Ό 톡해 ν”„λž˜κ·Έλ¨ΌνŠΈ 셰이더(Fragment Shader)둜 μ „λ‹¬λ©λ‹ˆλ‹€ [1]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μΈμŠ€ν„΄μ‹± 및 절차적 κΈ°ν•˜ν•™ λ³€ν˜•:** λ²„ν…μŠ€ μ…°μ΄λ”λŠ” μΈμŠ€ν„΄μŠ€ 메쉬에 μ μš©λ˜μ–΄ λ‹€μˆ˜μ˜ 이미지λ₯Ό μ›”λ“œ κ³΅κ°„μ—μ„œ 움직이도둝 ν•˜λŠ” μ• λ‹ˆλ©”μ΄μ…˜ λ‘œμ§μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [3]. λ˜ν•œ, μ»€μŠ€ν…€ λ²„ν…μŠ€ 셰이더λ₯Ό 톡해 메쉬 데이터λ₯Ό λ³΅μ œν•˜μ§€ μ•Šκ³ λ„ μΈμŠ€ν„΄μŠ€λ³„λ‘œ λ¬΄μž‘μœ„ μΆ•μ²™(Scale), νšŒμ „ μ˜€ν”„μ…‹, 정점 λ³€μœ„(Vertex Displacement) λ“±μ˜ 절차적 λ³€ν˜•μ„ κ°€ν•˜μ—¬ 닀양성을 λ§Œλ“€μ–΄λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€ [4]. - **ν”„λž˜κ·Έλ¨ΌνŠΈ μ…°μ΄λ”μ™€μ˜ 데이터 전솑:** λ²„ν…μŠ€ μ…°μ΄λ”μ—μ„œ 처리된 λ°μ΄ν„°λŠ” Varying λ³€μˆ˜λ₯Ό 톡해 ν”„λž˜κ·Έλ¨ΌνŠΈ μ…°μ΄λ”λ‘œ μ „λ‹¬λ©λ‹ˆλ‹€ [1]. λͺ¨λ°”일 GPU ν™˜κ²½μ—μ„œ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄μ„œλŠ” 이 Varying λ³€μˆ˜μ˜ μ‚¬μš©μ„ 3개 미만으둜 μ΅œμ†Œν™”ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [1]. - **μ„±λŠ₯ 병λͺ©κ³Ό μ—°μ‚° λΆ€ν•˜:** λ²„ν…μŠ€ 셰이더 λ‹¨κ³„μ—μ„œ μˆ˜ν–‰λ˜λŠ” ν–‰λ ¬ κ³±μ…ˆ λ“±μ˜ 연산은 λ Œλ”λ§λ˜λŠ” μΈμŠ€ν„΄μŠ€μ˜ μˆ˜κ°€ λŠ˜μ–΄λ‚ μˆ˜λ‘ μ„ ν˜•μ μœΌλ‘œ μ¦κ°€ν•©λ‹ˆλ‹€ [2]. μ‹œμ•Ό μ ˆλ‘μ²΄ 컬링(Frustum Culling)이 μ œλŒ€λ‘œ 이루어지지 μ•Šμ„ 경우, 화면에 μ‹€μ œλ‘œ κ·Έλ €μ§€λŠ” μ˜μ—­μ΄ 적더라도 보이지 μ•ŠλŠ” 객체에 λŒ€ν•΄ κ°•μ œλ‘œ λ²„ν…μŠ€ 셰이더 연산이 μˆ˜ν–‰λ˜μ–΄ GPU μ μœ μœ¨μ„ 100%κΉŒμ§€ μƒμŠΉμ‹œν‚€κ³  ν”„λ ˆμž„ λ“œλžμ„ μœ λ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€ [2]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Fragment Shader]], [[Instancing]], [[Varying Variables]] - **Projects/Contexts:** [[λŒ€κ·œλͺ¨ μΈμŠ€ν„΄μŠ€ λ Œλ”λ§ μ΅œμ ν™”]], [[λͺ¨λ°”일 GPU 셰이더 μ„±λŠ₯ 관리]] - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (λ²„ν…μŠ€ 셰이더 자체의 ꡬ체적인 λ‚΄λΆ€ λ¬Έλ²•μ΄λ‚˜ 근본적인 κ·Έλž˜ν”½μŠ€ νŒŒμ΄ν”„λΌμΈ 원리에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…은 제곡된 μ†ŒμŠ€μ— ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.) --- *Last updated: 2026-04-19* - Raw Source: [[00_Raw/2026-04-20/Vertex Shader.md]] --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*