2012-12-11 1 views
8

아마도 이전에 물어 본 적이 있지만 어디서나 찾을 수는 없습니다 ...왜 cocos2d에서 60fps 만 원활합니까?

비디오 필드에서 24fps 이상은 부드럽습니다. Cocos2d는 이 60fps 또는 약간 더 작을 때만 부드럽게 보입니다. 30과 50 사이에 아무것도는 FPS 카운터가 왜이

입니다 ... 정확하지 않는 것 확실히 원활하지? 아니면이 상황을 가지고있는 건가요?

답변

25

실제로이 동작에는 몇 가지 이유가 있으며, 단지 cocos2d가 아니라 vertical synchronization (VSYNC)이 활성화 된 환경에서 모든 게임 엔진에서 나타나는 영향입니다. iOS에서 VSYNC는 항상 켜져 있으며 PC에서는 일반적으로 모니터 속도 미만인 경우 프레임 속도를 향상 시키려면 끄십시오 (screen tearing). 일반적으로 iOS 기기와 같은 LCD는 60Hz에서 디스플레이를 업데이트하므로 최대 60fps를 허용합니다.

Cocos2D 1.x는 기본적으로 업데이트 용으로 CADisplayLink 클래스를 사용하며, Cocos2D 2.x는 CADisplayLink 만 사용합니다. CADisplayLink는 업데이트가 화면 새로 고침 빈도와 동기화되도록합니다. 화면의 내용 그리기가 완료되면 알림이 전송됩니다. 당신이 60 FPS를 얻을 때

모두 괜찮습니다. 그러나 게임에서 프레임을 렌더링하여 60fps로 렌더링 할 수 없으면 다음 화면 새로 고침이 완료된 후에 만 ​​다음 번 업데이트를 수신합니다. 이렇게하면 프레임 속도가 60fps 바로 아래로 떨어지면 곧바로 프레임 속도가 반으로 줄어 듭니다. 즉, 업데이트 & 렌더링주기가 완료 될 때까지 16.666 밀리 초보다 오래 걸리는 즉시. 즉, CADisplayLink 업데이트로 iOS에서 60, 30, 20 및 15fps (60을 1, 2, 3 및 4로 나눈 값)의 개별 프레임 레이트 만 가질 수 있습니다.

60, 30, 20 및 15fps 사이에서 변동하는 프레임 속도 - 심지어 1 초도 안되기도하지만 - 주로 비정상적이기 때문에 부드럽게 느껴지지 않기 때문에 효과가 눈에 -니다 - 비정상은 우리가 알아 차리는 것입니다 "매끄럽지 않다". 게임이이 문제의 영향을 받으면 프레임 속도를 30fps로 제한하면 게임이 더 부드럽게 표시됩니다. 또한 프레임간에 & 렌더링 항목을 업데이트하는 데 더 많은 시간이 있습니다.

24fps 영화 프레임의 안정감은 "부드러움"으로 인식되지만 영화 감독은 제한된 프레임 속도가 너무나도 명백한 장면을 피하는 법을 배웠습니다. 예를 들어, 그들은 게임이 자주하는 일을 지옥처럼 피합니다 : 옆으로 스크롤, 즉 카메라의 옆으로 움직이거나 카메라를 지나가는 물체의 옆으로 움직입니다.

당신은 당신이 호빗을 볼 때 매끄러운 영화가 얼마나 많이 놀랄 것입니다 - 48 fps로 실행하는 최초의 블록버스터 영화입니다. 영화의 등장 인물이 얼마나 "진짜" "진짜"인지 즉시 알 수 있습니다. 노출을 얻으려면 unofficial 48 fps The Hobbit trailer을 확인하십시오. FPS가 수 프레임에 걸쳐 30 fps의 프레임 율 있지만 평균 20, 15 행에서 60 스위치의 정확한 표현 아니므로 표시적인 Cocos2D 무엇

.따라서 cocos2d가 "45fps"를 인쇄 할 때 게임이 30fps로 표시되는 시간의 절반을 의미하고 나머지 절반은 지난 두 프레임 동안 60fps로 표시됩니다.

+1

항상 유용한 정보를 제공하는 보물. thks. – YvesLeBorg

+1

당신은 물론 20fps (60/3) – Sebastian

+0

아를 잊어 버렸습니다 ... 업데이트 됨 – LearnCocos2D

2

두 가지 주요 문제점.

먼저 디스플레이의 재생 빈도와 일치한다 - 무엇을 당신은 눈/두뇌가 안보에 좋은 불규칙한 움직임을 얻는다. 적어도 그것의 배수에 있어야합니다.

둘째 모션 블러이다. 필름/비디오는 동작 흐림 효과가있어 시청자가 연속 동작을 보지 못하게합니다.

+0

나는 그것이 의미있는 것을 알았다. 그러나 데스크톱 모니터에는 종종 60hz 재생 빈도가 있습니다. 나는 fps가 50 이하인 데스크탑 게임에 문제가 있다는 것을 기억하지 못한다. 아마 내가 잘못 생각한 것 같다. 아이폰에 전형적인 무엇인가? – yurki

+0

데스크톱 모니터는 일반적으로 요즘보다 약간 높습니다. 일부 저렴한 LCD 디스플레이는 약간 흐려집니다. 그렇지 않으면 특별히 특별한 일은 없습니다. – JasonD

+0

60Hz 모니터에서 깜박임을 발견했습니다. – user739711

관련 문제