TECHARTNOMAD | TECHARTFLOWIO.COM

TECH.ART.FLOW.IO

[번역] UE5. 앰비언트 라이트 및 GI 2: 노멀 스무딩하기

jplee 2025. 10. 23. 22:21

Yu-ki016 군의 GI 저니 두 번째 글입니다.
저자: Yu-ki016

1. 서론

이전 글에서는 Lumen의 Diffuse를 다운샘플링하고 컨볼루션을 수행하여 저주파 Lumen을 얻는 방법을 소개했습니다. Perfect World의 발표에서는 또 다른 접근 방식을 제시했는데, 바로 노멀을 스무딩하여 저주파 Lumen 정보를 얻는 방법입니다.

이 아이디어가 매우 흥미로워서 저도 시도해보고 싶었습니다. 노멀 스무딩이라고 하면 툰 캐릭터의 노멀에 Blur를 적용하는 것을 먼저 떠올리실 수 있지만, 저는 툰 렌더링을 할 때마다 Blur를 사용하고 싶지는 않았습니다. 그래서 다른 방법으로 대체할 수 있을지 고민하다가 문득 "카메라 방향으로 노멀을 대체하는 것도 가능하지 않을까?"라는 생각이 들었습니다.

바로 테스트해보았습니다:

LumenScreenProbeGather.usf
결과는 놀라울 정도로 좋았습니다. 이 방법은 효율적이고 구현이 간단하며, 다운샘플링이나 컨볼루션이 필요하지 않습니다. 이는 씬 픽셀이 툰 캐릭터로 번지는 아티팩트가 발생하지 않는다는 것을 의미하므로, 매우 추천드리는 방법입니다.

2. 구현 방법

이번 구현은 매우 간단합니다. 핵심 코드는 서론에서 보여드린 몇 줄이 전부입니다.
먼저 파라미터를 조정하여 셰이더에 전달합니다:

Scene.h
그다음 이전에 사용했던 다운샘플링 관련 코드를 모두 삭제했습니다. (이제 필요 없습니다.jpg)

IndirectLightRendering.cpp
LumenScreenProbeGather.usf에서 툰 캐릭터의 노멀과 카메라 방향을 보간합니다:
LumenScreenProbeGather.usf
DiffuseIndirectComposite.usf에서는 Lumen 강도, 채도, AO 강도 등을 조정하도록 수정했습니다:

DiffuseIndirectComposite.usf
최종 결과:

 

3. 참고 자료 및 링크

3.1 링크

본 글의 모든 수정 사항은 GitHub에 업로드되었으며, 아래 그림의 커밋 기록에 해당합니다:

https://github.com/Yu-ki016/UnrealEngine/tree/YK_Engine
예제 프로젝트:
https://github.com/Yu-ki016/YKEngineExampleProject
원문 링크:
https://github.com/Yu-ki016/Yu-ki016-Articles/tree/main/UE5%E5%8D%A1%E9%80%9A%E6%B8%B2%E6%9F%93%E5%BC%95%E6%93%8E/%E3%80%90UE5%E3%80%91%E7%8E%AF%E5%A2%83%E5%85%89%E4%B8%8EGI2

 

Yu-ki016-Articles/UE5卡通渲染引擎/【UE5】环境光与GI2 at main · Yu-ki016/Yu-ki016-Articles

Yu-ki016的文章仓库. Contribute to Yu-ki016/Yu-ki016-Articles development by creating an account on GitHub.

github.com

 

3.2 참고 문헌

[UFSH2024]언리얼 엔진 5로 《환탑》을 위한 고품질 애니메이션 흐름 스타일라이즈드 렌더링 파이프라인 커스터마이징 | 晨风 Neverwind 완벽세계게임즈:

 

[UFSH2024]用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线 | 晨风 Neverwind 完美世界游戏_

未经作者授权,禁止转载

www.bilibili.com