Files
2nd/Graphics & Performance/Fragment Shading.md
T

3.5 KiB

id, category, confidence_score, tags, last_reinforced, github_commit
id category confidence_score tags last_reinforced github_commit
P-REINFORCE-AUTO-809D81 10_Wiki/💡 Topics/Graphics & Performance 0.90
auto-reinforced
2026-04-20 [P-Reinforce] Continuous Worker - Fragment Shading

Fragment Shading

📌 한 줄 통찰 (The Karpathy Summary)

프래그먼트 셰이딩(Fragment Shading)은 렌더링 파이프라인 후반부에서 픽셀 단위의 렌더링 계산(퍼 픽셀 조명 연산 등)을 수행하여 최종 색상 값을 결정하는 프로세스이다 [1, 2]. 다수의 텍스처 룩업이나 복잡한 연산이 포함될 경우 필 레이트(Fill Rate)를 크게 저하시킬 수 있으며 [2], 동일 픽셀에 여러 번 렌더링 연산이 중첩되는 오버드로우(Overdraw) 현상이 발생할 경우 GPU 성능 병목의 주요 원인이 되기도 한다 [3].

📖 구조화된 지식 (Synthesized Content)

  • 픽셀 단위 연산의 수행: 프래그먼트 셰이더는 픽셀의 최종 색상 값을 결정하는 픽셀 단위의 계산을 전담한다 [2]. 버텍스 셰이더(Vertex Shader)와 프래그먼트 셰이더 사이에서는 varying 변수를 통해 데이터가 전달되며 [4], 구워진 노멀 맵(baked normal maps) 등을 활용해 복잡한 표면 디테일을 픽셀 셰이딩(pixel shading) 방식으로 렌더링한다 [1].
  • 셰이더 복잡도와 필 레이트(Fill Rate): 프래그먼트 셰이더 내에서 여러 텍스처를 조회하거나, 수학적 연산 및 조건 논리가 복잡해질 경우 중간 사양의 GPU에서는 필 레이트가 50-70%가량 감소할 수 있다 [2]. 특히 PBR(물리 기반 렌더링) 환경에서는 각 픽셀마다 다수의 텍스처 샘플링(알베도, 노멀, 메탈릭, 러프니스 등) 및 환경 반사 연산을 처리해야 하므로 프래그먼트 처리 시간이 급증하게 된다 [2].
  • 오버드로우(Overdraw)의 영향: 프래그먼트 셰이딩 단계에서 나타나는 오버드로우는 투명한 기하학적 구조가 겹치거나 깊이 정렬(Depth sorting)이 효율적이지 않아 동일한 픽셀 위치에 렌더링 쓰기 작업이 여러 번 중첩되는 현상이다 [3, 5]. 이는 화면에 보이지 않는 픽셀의 연산에까지 GPU 자원을 낭비하게 만든다 [5].
  • 정렬 부재와 프래그먼트 바운드(Fragment-bound) 현상: 불투명 객체를 렌더링할 때 객체를 '앞에서 뒤로(Front-to-Back)' 정렬하면 가려진 픽셀 연산을 일찍 종료하는 Early-Z 최적화를 통해 성능을 확보할 수 있다 [3]. 하지만 InstancedMesh처럼 인스턴스들이 정렬되지 않은 상태로 렌더링되는 경우 이 최적화가 불가능해 막대한 오버드로우 비용을 발생시키며, 결과적으로 전체 씬(Scene)의 렌더링이 프래그먼트 연산의 한계에 부딪히는 프래그먼트 바운드 상태에 빠질 수 있다 [3, 6].

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
  • 정책 변화: Graphics & Performance 분야의 자동 자산화 수행.

🔗 지식 연결 (Graph)

  • Related Topics: Overdraw, Vertex Shader, Fill Rate, PBR
  • Projects/Contexts: Three.js WebGL Rendering Optimization, InstancedMesh Performance Bottlenecks
  • Contradictions/Notes: 소스에 관련 정보가 부족합니다.

Last updated: 2026-04-19

  • Raw Source: 00_Raw/2026-04-20/Fragment Shading.md