저는 스레딩과 관련하여 다소 신빙성이 있습니다. 따라서 올바른 방향의 포인터가 큰 도움이 될 것입니다. 상당히 많은 업데이트 기능과 상당히 무거운 인출 기능을 모두 갖춘 게임이 있습니다. 나는 draw 함수의 대부분의 무게가 GPU에서 발생한다고 가정합니다. 이 때문에 드로잉이 진행되는 동안 다음 프레임에서 업데이트 계산을 시작하고 싶습니다. 지금, 내 게임 루프는 매우 간단합니다 : 그것은 그리기 독립적으로 실행할 수 있도록, 게임 상태를 변경하지 마십시오iPhone에서의 업데이트에서 OpenGL 호출 분리하기
Game->Update1();
Game->Update2();
Game->Draw();
Update1()
업데이트 변수. 즉, 둘 사이의 데이터에 대한 투쟁이 없어야합니다. 또한 CPU 처리의 대부분입니다.
Update2()
그리기에 필요한 변수가 매우 빠르며 따라서 Draw()
을 직렬로 실행하는 것이 옳은 것처럼 보입니다. 또한 Draw()
함수는 CPU에서 가벼우 며 GPU에서는 무겁다 고 생각합니다.
GPU가 모든 그리기 기능을 처리하는 동안 다음 프레임의 Update1()이 다음 프레임의 업데이트 준비를 위해 CPU를 사용할 수 있습니다. 내가 자동으로이 기능을 사용하는 것 같지 않습니다. 그리기주기가 조금 걸릴 것 같고 완료 될 때까지 모든 것을 차단합니다. 이상적인 것보다 적습니다.
이 작업을 수행하는 올바른 방법은 무엇입니까? 이미 이런 일이 벌어지고 있으며, 제대로 관찰하지 않고있는 중입니까?
아, 훌륭합니다! 감사! – Perrako