모션 블러
모션 블러 효과는 실제 카메라가 카메라의 노출 시간보다 빠르게 움직이는 오브젝트를 촬영할 때 이미지에서 발생하는 블러 현상을 시뮬레이션합니다. 이는 일반적으로 빠르게 움직이는 오브젝트 또는 긴 노출 시간 때문에 발생합니다.
모션 블러 사용
모션 블러 효과는 HDRP의 속도 버퍼의 속도를 사용합니다. 즉 모션 블러가 효과를 가지려면 Unity 프로젝트에서 반드시 모션 벡터를 활성화해야 합니다. 모션 벡터를 활성화하는 방법에 대한 자세한 내용은 모션 벡터 문서를 참조하십시오.
Motion Blur는 볼륨 프레임워크를 사용합니다. 따라서 Motion Blur 프로퍼티를 활성화하고 수정하려면 씬의 볼륨에 Motion Blur 오버라이드를 추가해야 합니다. 볼륨에 Motion Blur를 추가하려면 다음 단계를 따르십시오.
- 씬 또는 계층 구조 뷰에서 Volume 컴포넌트가 포함된 게임 오브젝트를 선택하여 인스펙터에서 확인합니다.
- 인스펙터에서 Add Override > Post-processing으로 이동한 후 Motion Blur를 클릭합니다. 그러면 HDRP가 이 볼륨이 영향을 주는 모든 카메라에 Motion Blur를 적용합니다.
모션 블러에는 반드시 수동으로 노출해야 하는 more options가 포함되어 있습니다.
API
런타임 시 이 오버라이드에 액세스하여 제어하려면 볼륨 스크립팅 API를 사용합니다. 볼륨 시스템이 작동하는 방식으로 인해 표준 Unity 컴포넌트에 다른 방식으로 프로퍼티를 편집합니다. 각 프로퍼티에 오버라이드 상태가 있는 것과 마찬가지로 주의해야 할 다른 미묘한 차이가 있습니다. 이는 설정한 프로퍼티 값을 사용해야 하는지 또는 볼륨 프로파일에 저장된 기본값을 사용해야 하는지 볼륨 시스템에 알려줍니다. API를 올바르게 사용하는 방법에 대한 자세한 내용은 볼륨 스크립팅 API를 참조하십시오.
프로퍼티
프로퍼티 | 설명 |
---|---|
Intensity | 모션 블러 효과의 강도를 설정합니다. 이는 속도 버퍼에 있는 속도의 크기를 조정합니다. 모션 블러를 비활성화하려면 이 값을 0으로 설정합니다. |
Quality | 이 효과에 대해 사용하는 품질 수준을 지정합니다. 각 품질 수준은 다른 프리셋 값을 적용합니다. Unity는 또한 프리셋이 오버라이드하는 프로퍼티 편집을 방지합니다. 모든 프로퍼티에 대해 자체 값을 설정하고자 하는 경우 Custom을 선택해야 합니다. |
Sample Count | HDRP가 모션 블러 효과를 계산하기 위해 사용하는 샘플 지점의 최대 수를 설정합니다. 값이 클수록 품질이 올라가며 블러가 더 매끄럽게 생성됩니다. 또한 값이 높을수록 효과에 리소스가 더 많이 소모됩니다. |
Maximum Velocity | 슬라이더를 사용하여 HDRP가 카메라 회전을 제외한 모든 모션 블러 소스에 허용하는 최고 속도(픽셀)를 설정합니다. 이렇게 하면 임계점을 넘는 값을 임계값에 고정합니다. 값이 클수록 블러가 더 강렬해지고 리소스 소모량도 늘어납니다. |
Minimum Velocity | 슬라이더를 사용하여 모션 블러를 트리거하는 최저 속도(픽셀)를 설정합니다. 값이 클수록 HDRP가 느리게 이동하는 게임 오브젝트에 대한 모션 블러를 계산하지 않습니다. 이렇게 하면 리소스 소모량이 감소합니다. |
Camera Motion Blur | 카메라 움직임이 모션 블러에 기여하는지 여부를 나타냅니다. 이 프로퍼티를 비활성화하면 카메라 움직임이 모션 블러에 기여하는 것을 방지할 수 있습니다. |
Camera Clamp Mode | HDRP가 카메라의 움직임/회전에서 파생되는 모션 벡터를 고정하기 위해 사용하는 방법을 지정합니다. 이렇게 하면 구체적으로 카메라에서 나온 모션 벡터를 고정하지만 카메라와 관련된 모션 벡터 속도도 변경될 수 있습니다. 예를 들어 카메라를 부모로 가진 게임 오브젝트(따라서 카메라와 함께 이동하고 회전함)는 카메라가 이동할 때 0 모션 벡터가 없을 수 있습니다. 옵션은 다음과 같습니다. • None: 카메라에서 파생된 모션 벡터 컴포넌트를 다르게 처리하지 않습니다. •Rotation: 카메라에서 파생된 모션 벡터 컴포넌트는 별도로 고정됩니다. •Translation: 카메라 이동에서 파생된 모션 벡터 컴포넌트는 별도로 고정됩니다. •Separate Translation And Rotation: 카메라 회전 및 이동에서 파생된 모션 벡터 컴포넌트는 개별 고정 옵션을 사용하여 별도로 고정됩니다. •Full Camera Motion Vector: 카메라의 전체 움직임(회전 및 이동)에서 파생된 전체 모션 벡터 컴포넌트는 오브젝트 모션과 별도로 고정되지만 단일 임계점으로 고정됩니다. |
- Rotation Clamp | 슬라이더를 사용하여 HDRP가 카메라 회전을 게임 오브젝트의 속도에 기여하게 하는 최대 속도를 설정합니다. 이 값은 화면 굴절로 표시됩니다. 값이 클수록 카메라 회전으로 더 넓은 블러가 생깁니다. 이 프로퍼티는 Camera Clamp Mode를 Rotation이나 Separate Translation And Rotation으로 설정한 경우에만 관련됩니다. |
- Translation Clamp | 슬라이더를 사용하여 HDRP가 카메라 이동을 게임 오브젝트의 속도에 기여하게 하는 최대 속도를 설정합니다. 이 값은 화면 굴절로 표시됩니다. 값이 클수록 카메라 회전으로 더 넓은 블러가 생깁니다. 이 프로퍼티는 Camera Clamp Mode를 Translation이나 Separate Translation And Rotation으로 설정한 경우에만 관련됩니다. |
- Motion Vector Clamp | 슬라이더를 사용하여 HDRP가 카메라 트랜스폼을 게임 오브젝트의 속도에 기여하게 하는 최대 속도를 설정합니다. 이 값은 화면 굴절로 표시됩니다. 값이 클수록 카메라 회전으로 더 넓은 블러가 발생합니다. 이 프로퍼티는 Camera Clamp Mode를 Full Camera Motion Vector로 설정한 경우에만 관련됩니다. |
세부 정보
모션 블러 성능에 미치는 영향을 감소하는 여러 가지 가능한 옵션이 있습니다. 효과 순서대로 나열하면 다음과 같습니다.
- Sample Count를 줄입니다. 샘플 수가 낮을수록 성능은 그만큼 높아집니다. 하지만 두 샘플이 1픽셀보다 더 적게 떨어져 있지 않도록 알고리즘이 샘플의 최대 양을 고정하여 높은 샘플 수로 인해 천천히 이동하는 게임 오브젝트가 영향을 많이 받지 않도록 해야 합니다.
- Minimum Velocity를 늘립니다. 이 임계값을 높이면 HDRP는 화면을 덜 희미하게 합니다. 많은 게임 오브젝트가 이 임계값 미만의 속도인 경우 HDRP는 이러한 오브젝트에 대해 모션 블러를 계산하지 않으며 효과가 리소스를 소모하는 양도 줄어듭니다.
- Maximum Velocity와 Camera Clamp 파라미터를 줄입니다. 이렇게 하면 덜 강렬한 블러를 제공하여 GPU에 더욱 친화적인 액세스 패턴이 생깁니다.
None 외에 Camera Clamp Mode를 선택하는 경우 일반적으로 카메라 모션과 관련있는 모션 벡터는 더 이상 없습니다. 예를 들어 오브젝트에 부모인 카메라가 있어서 그 카메라를 완벽하게 따른다면 일반적으로 해당 오브젝트에는 길이가 0에 가까운 모션 벡터가 있습니다. 하지만 카메라가 오브젝트에 다른 고정 방법을 사용한다면 고정 지점에 도달하는 경우 최종 속도 길이는 0이 아닐 수 있습니다.