--- id: P-REINFORCE-AUTO-1AF9EB category: "10_Wiki/πŸ’‘ Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Three Shader Language (TSL)" --- # [[Three Shader Language (TSL)|Three Shader Language (TSL)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > TSL(Three Shader Language)은 WebGPU의 WGSLκ³Ό WebGL의 GLSL둜 λͺ¨λ‘ 컴파일될 수 μžˆλŠ” Three.js의 λ…Έλ“œ 기반 머티리얼 및 셰이더 μ‹œμŠ€ν…œμž…λ‹ˆλ‹€ [1]. κ°œλ°œμžκ°€ 셰이더 μ½”λ“œλ₯Ό ν•œ 번만 μž‘μ„±ν•˜λ©΄ μ—¬λŸ¬ ν”Œλž«νΌμ—μ„œ μ‹€ν–‰ κ°€λŠ₯ν•˜λ„λ‘ μžλ™ ꡐ차 μ»΄νŒŒμΌμ„ μ§€μ›ν•˜μ—¬ μ½”λ“œ 쀑볡을 λ°©μ§€ν•©λ‹ˆλ‹€ [1-3]. μœ λ‹ˆνΌ 및 속성 관리λ₯Ό μžλ™μœΌλ‘œ μ²˜λ¦¬ν•΄μ£Όλ©°, ν–₯ν›„ Three.jsμ—μ„œ μ»€μŠ€ν…€ 셰이더λ₯Ό κ°œλ°œν•˜κΈ° μœ„ν•œ ꢌμž₯ λ°©μ‹μœΌλ‘œ 평가받고 μžˆμŠ΅λ‹ˆλ‹€ [1, 2, 4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **단일 μ½”λ“œλ² μ΄μŠ€μ™€ μžλ™ ꡐ차 컴파일:** TSL은 μ›μ‹œ(raw) GLSL λ˜λŠ” WGSL을 직접 μž‘μ„±ν•˜μ—¬ 두 개의 셰이더 μ½”λ“œλ² μ΄μŠ€λ₯Ό μœ μ§€ν•΄μ•Ό ν•˜λŠ” 수고λ₯Ό λœμ–΄μ€λ‹ˆλ‹€ [2]. μž‘μ„±λœ μ½”λ“œλŠ” WebGPU 및 WebGL ν™˜κ²½ λͺ¨λ‘μ— 맞좰 μžλ™μœΌλ‘œ ꡐ차 컴파일되며, μœ λ‹ˆνΌ(uniforms) 및 속성(attributes) 처리 μ—­μ‹œ TSL이 μžλ™μœΌλ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€ [2, 4]. * **λ…Έλ“œ 기반 머티리얼 μ œμ–΄:** TSL의 λ…Έλ“œ 머티리얼은 쑰합이 κ°€λŠ₯(composable)ν•˜λ©°, `positionNode`, `colorNode`, `normalNode`와 같은 속성을 μˆ˜μš©ν•˜μ—¬ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ μ œμ–΄λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€ [2, 5]. 이λ₯Ό 톡해 κΈ°μ‘΄ WebGL ν™˜κ²½μ—μ„œλŠ” λ³„λ„μ˜ λ³΅μž‘ν•œ μ»€μŠ€ν…€ 셰이더λ₯Ό μž‘μ„±ν•΄μ•Όλ§Œ ν–ˆλ˜ 동적인 λ Œλ”λ§ 효과λ₯Ό 더 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [5]. * **μ½”λ“œ μž¬μ‚¬μš©μ„± 및 λ‚΄μž₯ ν•¨μˆ˜:** κ°œλ°œμžλŠ” `Fn` νŒ¨ν„΄μ„ ν™œμš©ν•˜μ—¬ μž¬μ‚¬μš© κ°€λŠ₯ν•œ TSL ν•¨μˆ˜λ₯Ό μž‘μ„±ν•  수 있으며, 이 ν•¨μˆ˜λ“€μ€ ν•œ 번 컴파일된 ν›„ μ—¬λŸ¬ 머티리얼에 걸쳐 자유둭게 μž¬μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [6]. λ˜ν•œ, MaterialX λ…Έμ΄μ¦ˆ ν•¨μˆ˜μ™€ 같은 μœ μš©ν•œ κΈ°λŠ₯듀이 λ‚΄μž₯λ˜μ–΄ μžˆμ–΄ μ™ΈλΆ€ λΌμ΄λΈŒλŸ¬λ¦¬μ— μ˜μ‘΄ν•˜μ§€ μ•Šκ³ λ„ λ…Έμ΄μ¦ˆ κ΄€λ ¨ 셰이더 λ‘œμ§μ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [6]. * **WebGPU 포슀트 ν”„λ‘œμ„Έμ‹± 지원:** WebGPU 기반 ν”„λ‘œμ νŠΈμ˜ 경우, TSL λ…Έλ“œμ™€ κ²°ν•©λœ Three.js의 λ‚΄μž₯(native) 포슀트 ν”„λ‘œμ„Έμ‹± κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [7]. μ΄λŠ” 전체 μ»΄ν“¨νŠΈ 셰이더(compute shader) 지원이 ν†΅ν•©λœ WebGPU용 λ„€μ΄ν‹°λΈŒ μ†”λ£¨μ…˜μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€ [7]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[WebGPU|WebGPU]], [[WebGL|WebGL]], WGSL, GLSL, Node Material - **Projects/Contexts:** Three.js 크둜슀 ν”Œλž«νΌ μ»€μŠ€ν…€ 셰이더 및 포슀트 ν”„λ‘œμ„Έμ‹± 개발 - **Contradictions/Notes:** κΈ°μ‘΄ WebGL ν”„λ‘œμ νŠΈμ—μ„œλŠ” μ™ΈλΆ€ 라이브러리인 `pmndrs/postprocessing`이 μ—¬μ „νžˆ ν›Œλ₯­ν•œ μ„ νƒμ§€λ‘œ ν‰κ°€λ˜μ§€λ§Œ, WebGPU ν”„λ‘œμ νŠΈ ν™˜κ²½μ—μ„œλŠ” TSL λ…Έλ“œ 기반의 Three.js λ„€μ΄ν‹°λΈŒ 포슀트 ν”„λ‘œμ„Έμ‹±μ„ μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ 개발 방식이 μ „ν™˜λ  것을 ꢌμž₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ [7]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Three Shader Language (TSL).md ---