SDK로 모델을 취급할 때의 성능 정보
업데이트: 2019/09/04
성능
업데이트 속도
SDK에서 모델을 표시하는 경우 아트메쉬의 그리기 순서에 따라 성능이 저하될 수 있습니다.
Cubism 모델은 배면(캔버스 측)에서 하나씩 아트메쉬가 그려집니다.
화면에 아트메쉬를 그려 나가는 동안 그것이 직전에 그린 아트메쉬와 그리기 설정이 다른 경우 SDK에서의 성능이 저하됩니다.
전환하면 성능이 저하되는 설정은 다음과 같습니다.
- 그리는 아트메쉬가 사용하는 텍스쳐
- 그리는 아트메쉬의 그리기 모드(일반, 가산, 곱하기)
- 그리는 아트메쉬의 클리핑 유무
이러한 요소가 서로 영향을 미칩니다.
클리핑은 텍스쳐나 그리기 모드, 마스크가 되는 아트메쉬가 동일해도 설정의 전환이 발생합니다.
예를 들어, 텍스쳐를 2장 사용한 모델로 일부 아트메쉬가 배면부터 다음 순서대로 배치되어 있다고 가정합니다.
[이름] | [ID] | [그리기 설정] | [전환 발생] |
오른쪽 속눈썹 | ArtMesh6 | 텍스쳐: 두 번째 | ○ |
오른쪽 눈썹 | ArtMesh7 | ○ | |
오른쪽 뺨 | ArtMesh8 | 그리기 모드: 곱하기 | ○ |
오른쪽 하이라이트 | ArtMesh9 | 클리핑: 오른쪽 흰자, 그리기 모드: 가산 | ○ |
오른쪽 눈동자 | ArtMesh10 | 클리핑: 오른쪽 흰자 | ○ |
오른쪽 흰자 | ArtMesh11 | ||
왼쪽 속눈썹 | ArtMesh16 | ○ | |
왼쪽 눈썹 | ArtMesh17 | 텍스쳐: 두 번째 | ○ |
왼쪽 뺨 | ArtMesh18 | 그리기 모드: 곱하기 | ○ |
왼쪽 하이라이트 | ArtMesh19 | 클리핑: 왼쪽 흰자, 그리기 모드: 가산 | ○ |
왼쪽 눈동자 | ArtMesh20 | 클리핑: 왼쪽 흰자 | ○ |
왼쪽 흰자 | ArtMesh21 |
이 아트메쉬는 표 아래부터 순서대로 그려집니다.
이렇게 나열된 경우 그리기 설정은 표 아래부터 세면 전환이 10회 발생합니다.
이 그리기 순서를 다음과 같이 정렬하면 드로잉 설정이 전환되는 횟수가 7회로 줄어듭니다.
[이름] | [ID] | [그리기 설정] | [전환 발생] |
오른쪽 눈썹 | ArtMesh6 | 텍스쳐: 두 번째 | |
왼쪽 눈썹 | ArtMesh16 | 텍스쳐: 두 번째 | ○ |
오른쪽 뺨 | ArtMesh7 | 그리기 모드: 곱하기 | |
왼쪽 뺨 | ArtMesh17 | 그리기 모드: 곱하기 | ○ |
오른쪽 속눈썹 | ArtMesh8 | ||
왼쪽 속눈썹 | ArtMesh18 | ○ | |
오른쪽 하이라이트 | ArtMesh9 | 클리핑: 오른쪽 흰자, 그리기 모드: 가산 | ○ |
왼쪽 하이라이트 | ArtMesh19 | 클리핑: 왼쪽 흰자, 그리기 모드: 가산 | ○ |
오른쪽 눈동자 | ArtMesh10 | 클리핑: 오른쪽 흰자 | ○ |
왼쪽 눈동자 | ArtMesh29 | 클리핑: 왼쪽 흰자 | ○ |
오른쪽 흰자 | ArtMesh11 | ||
왼쪽 흰자 | ArtMesh21 |
아트메쉬의 순서와 전환 상황은 Cubism Viewer for OW에서 확인할 수 있습니다.
파라미터에 따라 그리기 순서가 변화하는 변형을 설정하면 전환 횟수의 예상이 어려워집니다.
또한 아래의 오브젝트나 각 스테이터스의 설정 수가 많으면 SDK상에서의 퍼포먼스에 영향을 주기 때문에 너무 많이 사용하지 않도록 주의해 주세요.
- 아트메쉬 수
- 폴리곤 수
- 디포머 수
- 디포머 변환의 분할 수
- 디포머의 부모자식 계층 수
- 하나의 오브젝트(아트메쉬, 디포머)에 설정된 파라미터 수
이 중에서는 특히 6이 영향이 크고, 기본적으로는 2개까지의 설정으로 하는 것을 추천합니다.
이는 파라미터의 키 폼 간의 블렌드 계산량이 곱셈으로 증가하기 때문입니다.
참고: 키 폼(부모자식 관계의 동작)
예를 들어, 1개의 아트메쉬에 2개의 파라미터가 설정되어 있는 경우 각 파라미터로 블렌드 계산을 실시한 후 각각의 계산 결과끼리 추가로 블렌드 계산합니다.
따라서 설정된 파라미터가 늘어날수록 블렌드 계산량도 증가합니다.
그 외에도 아트메쉬나 디포머가 부모의 워프디포머 범위 밖으로 나오면 처리 부하가 증가하므로 성능이 저하됩니다.
부모자식 관계 구축 시의 주의점에 대한 자세한 사항은 아래의 부모자식 관계의 조합 페이지를 봐 주세요.
초기화 속도
확장 보간은 파라미터의 선형 보간을 곡선적으로 보간하는 기능으로 실체로 지정된 수만큼 키 폼과 키 폼 사이에 확장 보간용 키 폼을 자동 생성합니다.
따라서 복수의 파라미터가 설정된 오브젝트에 확장 보간이 설정되면 확장 보간으로 추가된 키 폼끼리 곱해지기 때문에 이에 비례해 모델 파일의 사이즈가 증가합니다.
SDK에서 확장 보간을 처리하는 경우 실행 중인 성능에는 별로 영향을 주지 않지만 모델을 로드할 때 속도가 느려지므로 주의하십시오.
해상도
마스크의 메쉬가 표시되는 화면에 대해 큰 범위를 차지하는 경우 화면상의 마스크 해상도가 저하되어 미세한 표현이 손실될 가능성이 있습니다.
이것은 마스크를 생성하는 텍스쳐의 해상도가 변화하지 않기 때문으로 실제의 사이즈에 비해 작은 사이즈로 작성된 마스크를 크게 확대하는 경우에 발생합니다.
이를 방지하려면 큰 마스크를 사용하지 마십시오.