응용 프로그램이 전후 60fps에서 원활하게 실행 되더라도 새 노드가 화면에 나타날 때 SceneKit 앱 (메탈 사용)에 문제가 있습니다.새 노드가 표시 될 때 SceneKit app stutters
물건이 파괴되고 무언가가 파괴 된 곳에서 전원이 켜지는 게임을 상상해보십시오. 나는 말더듬이 나타나는 것은 파워 업에 나타나는 것이 확실합니다. 왜냐하면 상황이 파괴되고 (따라서 장면에서 제거 될 때) 일어나지 않기 때문입니다.
지금까지 말더듬을 수정하기 위해 수행 한 작업 : SceneKit보기의 사전로드 메소드를 통해 노드를 사전로드하고 완료 핸들러에서만 장면에 추가합니다. 카메라를 표시해야하기 오래 전에 카메라 위에 추가합니다. 시간이 지나면 카메라를 올바른 위치로 이동시킵니다. 하나의 변경 (파괴 된 항목의 노드 제거, 그 자리에서 파워 업 이동)을 보장하기 위해 대기열 메커니즘을 구현했습니다. 프레임 당 완료됩니다.
그러나 전원이 켜지는 동안 끊김 현상이 (항상은 아니지만) 때때로 발생합니다. SceneKit이 처음으로 노드가 나타날 때만 (심지어 미리로드 된 경우에도) 무언가를하고 있는지 궁금합니다. 어떤 일이 일어나더라도 더듬 거리는 원인이 될만한 것 같지만 Xcode 성능 측정기는 너무 짧아 보여야합니다. 모든 프레임에는 많은 유휴 시간이 있습니다. CPU와 GPU는 절대로 한계에 가깝지 않습니다.
균일 한 색상의 간단한 큐브를 사용하면 여전히 문제가 발생하기 때문에 복잡한 모양이나 거대한 질감과 관련이 없다고 생각합니다.
여기에 무슨 일이 일어나고 있는지 또는 어떻게 추적 할 수 있는지 생각해보십시오.