언어:
페이지 정보
태그:
수준별:
엔진 버전:
언리얼 엔진

굴절 모드: 픽셀 노멀 오프셋

언리얼 엔진

언리얼 엔진 4 에서는 이제 굴절의 비물리적 모델 Pixel Normal Offset (픽셀 노멀 오프셋)을 활용합니다. Index of Refraction (굴절 지수)에 대한 굴절 물리 모델을 사용하는 내장 코드는 빛이 여러 물질을 통과하면서 내는 반응을 기반으로 하는데, 이는 씬 컬러를 화면 밖에서 읽어오기에 여러가지 부작용이 생길 수 있습니다. 이펙트가 많이 보이지 않는 유리병처럼 작은 물체에는 좋을 수 있으나, 평면에는 문제가 될 수 있습니다. 픽셀 노멀 오프셋 은 물과 같이 화면 밖에서 읽어오는 상수 오프셋이 너무 많지 않은 커다란 평면에 굴절을 적용할 수 있습니다. 버텍스 노멀을 기준으로 삼은 뒤 버텍스 노멀에서부터 픽셀별 노멀이 얼마나 차이나는지 굴절 오프셋을 계산하는 방식으로, 이러한 평면에 시프트가 일어나지 않도록 합니다.

굴절 물리 vs 비물리 모델

아래 비교에서 Index of Refraction (굴절 지수) 물리 모델의 굴절 모드와 Pixel Normal Offset 의 비물리 모델이 머티리얼에서 노멀을 읽어들이는 방법의 차이를 알 수 있습니다.

굴절 물리 모델 관련 부가 정보 및 머티리얼에서의 사용법은, 굴절 사용법 문서를 참고하세요.

RefractionSettingIOR.png

RefractionSettingPNO.png

굴절 물리 모델: 노멀 맵 없이 굴절 지수

굴절 비물리 모델: 노멀 맵 없이 픽셀 노멀 오프셋

여기서 화면 밖에서 그리 많이 읽지 않는 픽셀 노멀 오프셋 모드와 비교했을 때 굴절 지수 모드를 사용한 경우 이미지에 시프트 현상이 목격됩니다. 굴절 지수 모드는 머티리얼에 노멀 맵 연결 없이 작동하는 반면, 픽셀 노멀 노프셋 의 경우 노멀 맵이 없으면 굴절이 보이지 않습니다.

RefractionSettingIOR.png

RefractionSettingPNO.png

노멀 맵 있는 물리 모델

노멀 맵 있는 비물리 모델

머티리얼에 노멀 맵을 추가하면, 굴절이 있고 굴절 입력에 1 이상의 값을 연결한 경우, 픽셀 노멀 오프셋 사용 시 표면을 따라 노멀이 이동되고 있습니다. 하지만 굴절 지수 모드의 경우, 아직 화면 밖에서 읽어들이는 오프셋이 있어서, 이처럼 굴절을 사용하는 평면에는 바람직하지 않습니다.

최종 결과

이 예제에서, 픽셀 노멀 오프셋 을 사용중일 때, 굴절이 전혀 없는 1.0 에서 이미지 시프트가 없이 표면상에 약간의 굴절이 생기는 2.0 까지 값 조정 결과를 확인할 수 있습니다.

태그