[Unreal_Rendering]ToneMapper 수정

2024. 6. 12. 23:06unreal/UnrealRendering

톤커브는 렌더링 최종단계에서 색상을 보정해주는 패스이며 게임 무드톤에 큰 영향을 줍니다

기본 커브만으로도 충분히 좋은 효과를 내기도 하지만 커스텀하게 변경하고 싶은 경우에는 수정을 하기도합니다.

 

톤맵 변환에는 공식이 필요하며 이공식은 직접 제작하기보다는 인터넷에 상당히 많이 돌아다니기때문에 구해서 

기본 톤 커브 공식은 넣되 몇몇 필수 요소들만 제어해서 최종 값을 설정하는것이 좋습니다.

 

일단 쉐이더 파일을 수정해줍시다

TonemapCommon.ush

 

아래도 더있지만 중요하지 않으므로 생략(인터넷에 있는 톤커브 공식 들입니다)

맨위에 tonecurvetype 과 ReinhardWhitePoint 는 사용하는 파라메터 입니다. 추가해 줍시다

 

또  수정할 부분을 변수로 변경해줍니다.

보통 이전에 실제 엔진을 실행해서 대충 톤커브들을 테스트해서 커브 자체는 확정을 하고 진행을 합니다.

 

상수로 고정되있던부분들을 변수로 변경해주고 에디터에서는 콘솔이나 별도의 ui로 제어할 수 있게 해줍니다.

이번에는 콘솔을 사용하도록 하겠습니다.

 

 

다음

실제 톤맵 연산을 할 부분을 수정합니다.

 

Engine/Shaders/Private/PostProcessCombineLUTs.usf

 

이제 톤맵을 수정하고 세부 값을 바꿔서 원하는 느낌의 톤커브를 디자이너가 제작 할 수 있는

쉐이더 준비는 마무리가 되었습니다.

 

이제 콘솔명령어로 에디터에서 수치를 조절 할 수 있도록 바인딩을 합니다.

 

쉐이더 파일(PostProcessCombineLUTs.usf)이름으로 검색해보니 다행이 같은이름의 cpp파일에 바인딩이 되어있습니다.

이런경우는 그냥 바로 해당 cpp파일에 콘솔명령어로 쉐이더 파라메터에 값을 넣어주면 됩니다.

 

PostProcessCombineLUTs.cpp

잠깐쓰고 나중에 상수로 교체할 예정이므로 최대한 간략하게 사용할 수 있게 등록

 

쉐이더에 넘길 파라메터맵에 추가해줍니다 형식과 변수명은 위에서 쉐이더에서 선언해준것과 동일해야합니다.

 

값 설정

 

위에 등록한 콘솔 명령어의 값을 가지고와서 파라메터 맵의 값에 등록해 줍니다.

 

 

 

좌 -  톤커브 개선한 뷰  우 - 톤커브 기본을 사용한 뷰

'unreal > UnrealRendering' 카테고리의 다른 글

[Unreal_Rendering]ToonShading  (0) 2024.06.18
[Unreal_Rendering]HeightFog 개선  (0) 2024.06.12