경계를 벗어난 픽셀

언리얼 에디터 뷰포트에 bound, 경계를 벗어난 픽셀 시각화시킵니다.

Windows
MacOS
Linux

오브젝트의 일부분이 화면상에 아직 남아있는데도 깜빡이거나 사라져 버리는 상황이 생긴다면, 아마도 그 일부가 바운드를 벗어났기 때문일 수 있습니다. 이는 흔히 셰이더의 디스플레이스먼트나 월드 포지션 오프셋 사용, 피직스 애셋 없는 스켈레탈 메시, 컴포넌트가 오너의 바운드 상속시 생깁니다.

이는 프러스텀 컬링, 오클루전 컬링, 그림자 드리우기, 간접강 캐시 및 기타 여러가지 렌더링 함수의 오동작을 일으킵니다. 가장 눈에 띄는 부작용은 카메라 회전시의 깜빡임인데, 바운드가 화면을 벗어나는 순간 컬링되는 오동작이 발생하기 때문입니다.

시각화 -> 경계를 벗어난 픽셀 을 선택하면 오브젝트의 경계 밖의 픽셀을 표시해 줍니다.

사용법

뷰포트에 이 모드를 켜려면 뷰포트의 표시 버튼 에 클릭한 다음 시각화 -> 경계를 벗어난 픽셀 시각화 를 선택하면 됩니다.

OOBP_showMenu.png

오너의 경계 상속

블루프린트 컴포넌트는 종종 부모의 경계를 상속하는 경우가 있는데, 부모의 경계가 자손보다 작은 경우 이러한 문제가 발생할 수 있습니다.

아래의 큐브 오브젝트는 (이미지의 빨강 박스인) 박스 컴포넌트스태틱 메시 컴포넌트 로 구성된 블루프린트입니다. 스태틱 메시는 박스에서 경계를 상속받도록 설정되어 있습니다. 박스의 크기가 스태틱 메시보다 작은 경우, 경계를 벗어난 픽셀 은 여러가지 (파랑, 노랑, 하양)색으로 그 부분을 표시해 줍니다.

월드 포지션 오프셋 또는 디스플레이스먼트

이러한 현상이 흔히 발생되는 또다른 상황은, 셰이더가 실시간으로 버텍스의 월드 위치를 변경, 오브젝트의 원래 경계 박스 경계 밖으로 제대로 밀어내는 경우입니다:

이 오브젝트의 일부는 경계 박스가 완전히 숨겨지거나 카메라를 벗어난 이후에 보일 것이기에, 깜빡이거나 부적절하게 사라질 것입니다.

이 경우 컴포넌트의 디테일 패널에서 Rendering 아래 펼쳐진 Bounds Scale (경계 스케일)을 사용해서 메시의 경계 박스에 모든 픽셀이 포함될 때까지 키워주면 됩니다. 그림자를 드리우는 것에 이 작업을 할 때는, 퍼포먼스 비용이 크기 때문에 조심해야 합니다. 스켈레탈 메시에서, 경계는 피직스 애셋으로부터 파생되며, 각각은 본마다 경계에 기여할지 말지 마킹할 수 있습니다.

OOBP_BoundsScale.png

스켈레탈 메시

스켈레탈 메시의 위치가 그 경계에서 변하는(displace) 주요 이유는, 메시의 액터 루트에서 메시를 멀리 이동시키는 애니메이션 때문입니다. 그러나 피직스 애셋이 있는 스켈레탈 메시는 경계를 계산하는 데 피직스 애셋을 사용합니다. 그렇게 하기 위해서는, 콘텐츠 브라우저에서 스켈레탈 메시에 우클릭한 다음 피직스 애셋 생성 을 선택합니다. 기본 세팅을 사용하는 것으로 스켈레탈 메시 경계로 발생되는 오차는 넘길 수 있지만 거의 최종 결과물을 수정하고 싶을 것이기에, 피직스 애셋 편집 관련 상세 정보는 피직스 애셋 툴 문서를 참고해 주시기 바랍니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼