캐시 연산자는 특정 상태를 기록하고 메모리에 저장합니다. 이 기능은 필요한 처리량이 많아 재생, 특히 백트래킹 속도가 느린 대규모 또는 복잡한 파티클 시스템에서 유용합니다.
캐시가 적용되면 처음으로 프레임을 재생하거나 프레임으로 이동할 때 해당 프레임까지의 파티클 모션이 계산되고 캐시에 기록됩니다. 그 후에는 이 프레임이나 이전 프레임을 재생할 때 파티클 동작을 다시 계산하지 않고 캐시의 데이터가 사용됩니다. 캐시를 설정하면 각 프레임에 대해 한 번만 파티클 시스템을 계산하면 되고, 그 이후에는 프레임 재생 및 프레임 간 이동 속도가 훨씬 더 빠릅니다.
전체 흐름을 캐시하려면 캐시 연산자를 전역 이벤트에 추가합니다. 개별 로컬 이벤트를 캐시하려면 캐시 연산자를 해당 이벤트에 추가합니다.
파티클 시스템에 캐시를 구현하는 최상의 방법을 확인하려면 파티클 뷰 트랙 업데이트 업데이트 진행률을 설정한 다음 애니메이션을 재생하거나 현재 프레임에서 비교적 멀리 떨어진 프레임으로 이동합니다. 파티클 다이어그램을 관찰하고 동작이 1초의 몇 분의 1보다 길게 강조 표시되는 이벤트나 나머지보다 활동이 더 많은 이벤트가 있는지 확인합니다. 이러한 이벤트가 있을 경우 캐시가 도움이 될 수 있습니다.
예: 캐시 연산자를 사용하려면 다음을 수행하십시오.
이렇게 하면 시스템이 동작을 실행할 때 파티클 뷰에서 해당 동작이 강조 표시되므로 파티클 시스템의 계산을 모니터링할 수 있습니다.
거리 유지는 계산 사용이 많은 연산자입니다.
시스템에서 프레임 0과 100 사이의 모든 파티클 모션을 계산하는 동안 지연이 발생합니다. 파티클 흐름은 내역 종속 시스템이므로 이러한 지연이 필요합니다. 이와 동시에 각 프레임에서 시스템 동작이 실행되면 파티클 뷰의 해당 동작이 잠시 강조 표시됩니다.
시스템에서 프레임 0과 50 사이의 모든 파티클 모션을 계산하는 동안 다시 지연이 발생합니다.
마우스 버튼을 놓으면 캐시 연산자가 애니메이션의 처음부터 현재 프레임까지 파티클 모션을 자동으로 캐시하므로 지연이 발생합니다. 그 동안 각 프레임의 각 동작이 잠시 강조 표시됩니다.
강조 표시되는 연산자는 캐시(매우 빠름)와 디스플레이 뿐입니다. 계산을 위한 지연이 발생하지 않습니다. 0과 50 사이의 모든 프레임이 캐시되었습니다.
이번에는 프레임 50에서 100 사이의 파티클 모션을 캐시하므로 지연이 발생합니다.
이제 모든 파티클 모션이 캐시되었으므로 지연이 발생하지 않습니다. 그러나 설정 값을 변경하면 캐시 연산자가 자동으로 파티클 모션을 다시 계산하여 저장합니다.
캐시에 저장된 매개변수를 변경하면 기본적으로 캐시 연산자에서 자동으로 해당 캐시를 업데이트합니다. 따라서 프레임 100에서 폴오프 영역 값을 변경하면 전체 애니메이션이 다시 계산되고 다시 캐시됩니다.
다음에는 수동 캐싱의 작동 방식에 대해 간단하게 살펴보겠습니다.
이제 매개변수를 변경해도 캐시 연산자가 더 이상 자동으로 저장된 데이터를 업데이트하지 않습니다.
애니메이션이 여전히 캐시된 데이터에서 재생되므로 지연이 발생하지 않습니다. 그러나 파티클 시스템의 매개변수를 변경했으므로 캐시된 데이터는 이제 유효하지 않습니다.
3ds Max에서 파티클 뷰를 닫고 활성 세그먼트에 대한 캐시를 업데이트한 다음 파티클 뷰를 다시 엽니다. 이제 캐시된 데이터가 정확합니다.
기타 수동 업데이트 옵션을 사용하여 전체 애니메이션이나 사용자 정의 프레임 범위에 대해 캐시를 업데이트할 수 있습니다.
설명드린 것처럼 캐시 연산자는 매우 강력합니다. 이 연산자가 있고 활성화된 경우 기본적으로 파티클 시스템 다시 계산이 재정의됩니다. 단, 동작 매개변수를 변경하여 캐시된 데이터가 자동으로 업데이트되는 경우는 예외입니다. 적절하게 사용하면 파티클 시스템 설정 및 테스트 시간을 훨씬 절약할 수 있습니다.
사용자 인터페이스는 파티클 뷰 대화상자 오른쪽의 매개변수 패널에 나타납니다.
예를 들어 N을 기본값 5로 설정하면 캐시에서 매 5번째 프레임의 애니메이션 데이터를 저장합니다.
이 옵션은 캐시가 로컬 연산자로 사용되며 다음 이벤트가 캐시 연산자가 없는 경우에 중요합니다. 다음 이벤트가 제대로 작동하려면 현재 이벤트에서 파티클을 받아야 합니다. 이러한 파티클은 테스트 동작의 활동에서 발생합니다. 캐시 연산자는 테스트 활동을 기록하여 나중에 재생할 수 있습니다.
캐시 연산자가 전역 연산자로 사용되는 경우에는 테스트 결과를 캐시할 필요가 없습니다. 이는 모든 이벤트에 대한 캐시 데이터가 시스템에 있으며 테스트 결과가 없어도 아무 프레임으로나 이동할 수 있기 때문입니다.
일반적으로 캐시된 데이터는 저장 또는 다른 이름으로 저장 명령을 사용하여 만든 디스크 파일에만 저장됩니다. 다음 두 가지 옵션을 사용하여 캐시된 데이터를 다른 파일 형식으로 포함하도록 3ds Max에 지정할 수도 있습니다.
이 컨트롤을 사용하여 프레임 범위 내의 캐시를 수동으로 업데이트 또는 지우거나 전체 캐시를 지울 수 있습니다.
업데이트 중 캐시된 범위를 통해 시간 슬라이더를 이동하는 동안 3ds Max에서 파티클 뷰를 일시적으로 닫고 캐시 업데이트 진행률 바를 표시합니다. 기본적으로 이와 동시에 애니메이션이 뷰포트에서 재생됩니다. 이를 방지하고 계산 속도를 향상시키려면 뷰포트 업데이트를 끕니다.
수동 업데이트 중에 캐시 메모리가 부족하면 파티클 흐름에서 업데이트 작업을 중지하고 경고를 표시합니다. 확인을 클릭하여 계속한 다음 가능한 경우 다시 캐시를 업데이트하기 전에 제한 값을 늘립니다.
캐시 버퍼를 지운 후 다른 프레임으로 이동하거나 동작 매개변수를 변경하면 업데이트가 수동으로 설정된 경우에도 파티클 모션이 자동으로 캐시됩니다.
전체 애니메이션을 업데이트하려면 모든 프레임을 포함하도록 활성 세그먼트 또는 사용자 정의 범위를 설정한 다음 해당 선택 사항을 사용하고 업데이트를 클릭합니다.
설정하면 캐시를 수동으로 업데이트하는 동안 애니메이션이 뷰포트에서 재생됩니다. 수동 캐싱 중에 뷰포트에서 애니메이션을 재생하지 않으려면 이 옵션을 끕니다. 이렇게 하면 대규모 또는 복잡한 파티클 시스템에서 특히 캐싱 프로세스 속도가 향상될 수 있습니다. 기본적으로 켜져 있습니다.
캐시 연산자는 시스템 메모리에 데이터를 저장합니다. 이 연산자가 사용하는 메모리 양의 상한을 지정할 수 있습니다. 제한 설정과 캐시된 데이터 양이 사용 가능한 메모리를 초과하면 컴퓨터 시스템에서 대신 가상(하드 디스크 기반) 메모리를 사용하여 캐싱 속도가 느려질 수 있습니다. 파티클 흐름로 캐시를 채우는 경우 나머지 프레임은 즉석에서 계산됩니다.
이 그룹을 사용하면 데이터 캐싱에 사용되는 메모리 양을 모니터링할 수 있습니다.