분할기를 사용하여 부동 또는 정수 값을 더 분리하여 정확도가 약간 떨어지더라도 광범위한 값을 좀 더 관리하기 쉬운 하위 세트로 줄입니다. 이렇게 하면 모양 제어 하위 연산자를 위한 입력 데이터의 최적화에 도움이 될 수 있으며 다른 목적으로도 사용할 수 있습니다.
분할은 기본 및 단계의 두 값을 기준으로 합니다. 각 수신 값에 대해 양수 또는 음수를 단계 값에 곱한 다음 최대한 입력에 가까운 결과를 가져오기 위해 단계 값이 기본 값에 추가됩니다. 그런 다음 입력이 이 값으로 반올림됩니다. 기본은 "b", 단계는 "s"라고 할 때 하위 연산자의 가능한 출력 값은 b, b+s, b–s, b+2s, b–2s, b+3s, b–3s 등입니다.
수신 값은 가장 가까운 불연속 값으로 반올림됩니다. 수신 값이 정확히 불연속 값 사이에 있는 경우 다음의 가장 높은 값으로 반올림됩니다. 예를 들어 기본이 0이고 단계가 1이면, 입력 값 1.5는 2로 출력되고 입력 값 -1.5는 -1이 됩니다.
포함된 파일 GridAndShapeControl.max에서 분할기 사용 예를 찾을 수 있습니다. 흐름은 10,000개 이상의 파티클을 포함하고 두 개의 데이터 연산자를 통합하는데 두 개 모두 처음에는 비활성화되어 있습니다.
첫 번째 데이터 연산자는 분할기를 사용하지 않습니다. 설정하고 모든 파티클의 형상 모양을 계산하는 데 걸리는 시간을 기록합니다. 이 작업은 빠른 PC에서도 아주 느립니다.
그 다음 첫 번째 데이터 연산자를 해제하고 두 번째 데이터 연산자를 설정합니다. 이는 데이터 흐름에서 분할기를 사용하고 파티클 모양을 생성할 때 훨씬 빠르게 작동합니다. 그 이유는 연산자가 1도의 단계를 사용하여 수신 데이터 스트림을 불연속적으로 만들기 때문입니다. 첫 번째 경우 모양이 각 파티클에 대해 개별적으로 계산됩니다. 두 번째 경우 값이 전체 각도로 스냅되기 때문에 가능한 값 세트가 상당히 줄어듭니다. 불연속 최적화가 두 번째 데이터 연산자의 모양 제어 하위 연산자에서 설정되기 때문에 모양은 기껏해야 360개의 파티클에 대해 생성됩니다. 이는 단계가 1도인 서로 다른 각도 값에 대해 최대로 가능한 수입니다. 그런 다음 이러한 모양이 파티클 간에 공유됩니다. 눈으로는 이러한 두 가지 경우를 구별할 수 없지만 두 번째가 훨씬 빠르게 작동합니다.
그러므로 분할기 하위 연산자는 모양 제어 하위 연산자에 대한 유용한 최적화 도구입니다.