포스트

[ Dx11 ] (solution) 모션 블러가 사라지는 현상

문제


Depthpeeling을 통한 모션 블러 구현 시, 아래 그림과 같이 앞의 공의 모션 블러 효과는 존재하는데 뒤의 모션 블러가 사라지는 현상이 발생했고, 이를 해결하고자 했다.

앞의 공의 모션 블러 효과는 존재하는데 뒤의 모션 블러가 사라지는 현상

해결


먼저 해당 위치에서 발생한 문제를 확인했는데 레이어 별로 모션 벡터 맵을 출력했을 때 아래와 같은 결과가 나왔다.

모션 벡터 맵


이는 올바른 결과로 개별 레이어로 나눴을 때 적절한 모션벡터가 발생하는 것을 확인할 수 있었다.

이러한 문제 확인을 위해 accumulation방식 reference에서 똑같이 실험해본 결과 비슷한 현상이 발생한 것을 확인할 수 있었다.


레퍼런스에도 같은 현상


이는 공통적으로 앞에 모션블러 물체가 위치해 있고, 앞의 모션블러 효과와 겹치는 부분에서, 뒤에 위치한 물체의 끝부분에서 발생했다.

확인 결과, 이는 accumulation방식의 한계로 인한 것으로 보인다. accumulation방식은 여러 이미지의 평균으로 모션 블러 효과를 구현한다. 따라서 모션 블러 이미지의 픽셀은 여러 이미지들의 같은 위치 픽셀들의 평균 값으로, 해당 픽셀에 물체가 많이 머물수록 물체와 가까운 색을 내지만 적게 머물수록 배경색에 가까운 색을 출력하게 된다. 위 그림처럼 두 물체가 겹칠 경우, 배경 색상이 물체의 색상보다 더 많이 들어가, 사라져 보이는 것과 같은 현상이 발생했다.

따라서 이는 문제가 아니라 올바른 결과로 확인된다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.