npr-shaders
실시간 GLSL을 활용하여 구현한 비사실적 렌더링(NPR) 기법 연구 및 셰이더 컬렉션
개요
| 항목 |
내용 |
| 기간 |
2026.03 ~ 진행 중 |
| 팀 구성 |
개인 프로젝트 |
| 역할 |
Technical Artist / 셰이더 개발 |
| 플랫폼 |
Web (Shadertoy), Unity (URP/Built-in) |
| 기술 스택 |
GLSL, HLSL, Unity, C# |
기획 배경
현대 그래픽스 엔진에서 실사 렌더링은 이미 보편화되었으나, 개발자가 빛의 해석 방식을 직접 제어하여 고유한 예술적 스타일을 구축하는 NPR(Non-Photorealistic Rendering) 영역은 여전히 높은 기술적 이해를 요구합니다. 스타일라이즈드 게임 및 애니메이션 렌더링에 필수적인 톤, 아웃라인, 색상 체계의 직접적인 제어권을 확보하기 위해 본 프로젝트를 시작했습니다.
내가 기여한 것
실시간 크로스해칭(Cross-Hatching) 시스템 구현
- 표면 휘도(Luminance)에 따라 펜 드로잉 레이어를 가변적으로 누적하는 알고리즘 설계
- 0도부터 135도까지 45도 간격의 4개 해칭 레이어를 블렌딩하여 수작업 펜화 느낌 재현
- Value Noise를 활용한 선의 변위(Displacement) 처리를 통해 디지털의 기계적인 규칙성을 배제하고 유기적인 질감 구현
고급 툰 셰이딩(Toon Shading) 및 림 라이트 최적화
- 단순 명암 단계화를 넘어선 Hue-Shift 기법 적용: 그림자는 차갑게(Cool), 하이라이트는 따뜻하게(Warm) 색조를 이동시켜 실제 셀 애니메이션의 채색 기법 재현
- Fresnel 기반의 림 라이트(Rim Light) 구현 및 빛의 방향에 따른 가시성 제어 로직 최적화
- 스크린 스페이스 노멀 불연속성 감지 방식을 통한 아웃라인 렌더링으로 지오메트리 복제 없이 외곽선 구현
기술 문서화 및 엔진 이식 파이프라인 구축
- Shadertoy(GLSL) 코드를 Unity(HLSL) 환경으로 이식하기 위한 데이터 타입 및 함수 매핑 가이드 작성