UnrealEngine5/프로젝트

[UE5/LOL] Sobel Edge Filter 만들기 & UV 렌더링 문제 해결

왹져박사 2025. 5. 6. 23:23

 

Sobel Edge Filter의 기본은 다음 유튜브를 보며 공부하였다. 

https://www.youtube.com/watch?v=PXLgkxRizPI&t=11s

 

 

Sobel Edge Filter?

포스트 프로세싱 볼륨을 이용하여 SceneTexture에서 픽셀 정보를 받아와 아웃라인을 그려주는 필터이다. 

 


 

위 필터를 공부하고 적용한 뒤, 흑백이 아니라 실제 텍스쳐 컬러와 혼합하는 작업을 추가하였다. 

간단하게 원래 텍스쳐에서 컬러 값을 뽑아와 Multiply 해 주었다. 

 

결과 화면

Material 화면은 잘 나오지만, Editor Play 화면은 렌더링이 이상하게 되는 현상이 발생하였다.

 

 

위 현상을 해결하기 위하여 여러 파라미터들을 만져보다가 GetSceneTextureUV부분에서 문제가 생긴다는 것을 알게 되었다. 

 

 

문제 원인

 

SceneTexture란? 

현재 활성화된 카메라를 렌더링 타겟으로 하여 GPU가 그리는 화면이다. 

 

GetSceneTextureUV는 결국 카메라를 기준으로 하여 카메라 이상의 해상도로 플레이 화면을 늘렸다면,

위 결과 화면과 같이 UV를 계산하여 필터를 적용한 부분이 실제 화면과 다르게 나온다. 

 

해결 방법

해결?이라고 해야 할 수는 없지만, 의도와 같이 보고 싶다면,

간단한 방법은, 해상도 고정시키기라고 생각한다.

 

임시적인 방법으로는, 

1) 다음과 같이 에디터 플레이 화면을 카메라에 맞게 줄이거나

 

2) 새 에디터창으로 플레이한다. 

 


 

위 필터를 post processing volume이 아니라 material로 원하는 객체에만 적용되도록 마구 수정할 수 있는 작업을 할 것이다!