내일배움캠프-언리얼

[내일배움캠프 - 언리얼] DAY 39 - TA - 렌더링

이시보 2026. 1. 23. 21:15

Shader

GPU에서 실행되는 작은 프로그램으로 3D 객체에 색, 질감, 빛 반사, 투명도 등 시각 효과를 계산하고 적용하는데 사용

 

렌더링 파이프라인

3차원의 데이터를 2차원의 픽셀 이미지 데이터로 변환하기 위해 GPU에서 단계적으로 수행되는 처리 절차

HLSL 구조와 기본 문법

struct VertexInput {
    float3 position : POSITION;   // 정점 위치 (입력)
    float2 uv       : TEXCOORD0;  // 정점 UV 텍스처 좌표 (입력)
    float3 normal   : NORMAL;     // 정점 법선 벡터 (입력)
};

struct VertexOutput {
    float4 position : SV_POSITION; // 클립 공간 위치 (출력; SV_POSITION은 화면 좌표 변환 후 정점 위치)
    float2 uv       : TEXCOORD0;   // 보간된 UV 좌표 (픽셀 셰이더에 전달)
    float3 normal   : TEXCOORD1;   // 보간된 법선 (픽셀 셰이더에 전달)
};

 

VertexShader

- 물체의 정점 정보에 수학적인 연산을 진행

PixelShader

- 렌더링 될 각각의 픽셀들의 색을 계산

렌더링 기법

Forward

- 조명 계산을 한 번의 패스에서 같이 처리함

장점

1. 투명 오브젝트 계산에 적합

2. MSAA 사용 가능

3. 직관적

4. 메모리 요구량 작음

단점

1. 라이트 처리 문제

 

Deferred

조명 계산을 후반으로 미루어 진행하는 기법

장점

1. 조명 계산에 매우 효율적

2. 복잡한 조명 모델 구현이 쉬움

3. 오버드로우 문제 감소

단점

1. 메모리 요구량이 큼

2. 구현이 복잡함

3. 하드웨어 요구가 높음

렌더링 스타일

PBR(Physically Based Rendering)

- 표면이 현실의 라이트 작용 방식을 모방

- 현실의 에너지보존법칙을 유지하여 표현

BPR(Non-Photorealistic Rendering)

- 비현실적인 라이트 작동방식을 모방하는 렌더링

- 대표적으로 툰 렌더링