What are the FPS of the FaceTime Camera for the iPhone 6S vs 7+ vs X vs iPad Pro? - ios

We are capturing video from iOS devices and processing it using OpenGL but are encountering a FPS difference between the devices when trying to set them at their maximum rate.
The iPhone 6S and iPad Pro FaceTime cameras are maxing at 60 fps.
The 7+ and iPhone X however are maxing at 30 fps.
It seems unusual that the FPS would decrease with later versions of Apple's hardware. We are trying to figure out if this is a software issue or simply the technical specifications for the frame rate for the FaceTime camera.
We looked on Apple's technical specifications page but the frame rates of the FaceTime cameras aren't listed (though the rear cameras are.) For example:
https://www.apple.com/iphone-6s/specs/
https://www.apple.com/iphone-x/specs/
What are the FPS of the FaceTime Camera for the iPhone 6S vs 7+ vs X vs iPad Pro?

It looks like you’re correct. According to Apple’s iOS Device Compatibility Reference...
iPhone 6s series front camera does up to 60 FPS (all formats)
iPhone 7 series front camera does up to 30 FPS
iPhone 8 series / X front camera does up to 60 FPS, but only in binned formats (so you probably need to set the device’s activeFormat, not just choose a preset)
iPad Pro info is also in the tables at that link.

Related

AR.js distorted perspective: How to use a personalized camera calibration file `camera_para.dat` so that the "floor" plane is horizontal?

I'm looking into AR.js for an augmented reality use case where 3D objects do not appear directly on the hiro marker, but somewhere around the marker.
When I view my AR scene through my iPhone 7 from the top, everything looks fine, but when I tilt my camera to get more perspective, AR.js doesn't apply the same perspective to the AR world so that distant virtual objects appear as if they were located on an inclined plane.
I created an example page to illustrate this behaviour: When viewed from above, the grids match perfectly, but when viewed from the side, the planes mismatch.
Are there any settings I can apply to configure AR.js (or ARToolKit, which it depends on)? Maybe there's a way to define the field of view of my webcam there?
[EDIT] One week later, I would reword my question to: How can I use a device-specific camera_para.dat ARToolkit camera calibration file in AR.js without generating side effects such as a distorted rendering?
Updating the intrinsic optical characteristics of the camera, also known as calibration, might help!
The artoolkitx-calibration app is made for calibrating cameras. Unfortunately, the app is not available on the App Store currently. You can, however, deploy it to your development device using Xcode.
Alternatively, the ARToolKitX calibration server might contain camera calibration results for your smartphone - Unfortunately, it returns 204 (no content) for the iPhone 7 (a.k.a. apple/iPhone/iPhone9,3, camera 0, aspect ratio 16:9).
By the way,
camera_para.dat for several older iOS devices can be found on GitHub:
iPad 2: 0,7 MP
iPad Air 2: 8 MP, f/2.4
iPad Mini 3: 5 MP, f/2.4
iPhone 4: 5 MP, f/2.8
iPhone 4s: 8 MP, f/2.4
iPhone 5: 8 MP, f/2.4
iPhone 5s: 8 MP, f/2.2 (similar to iPhone 6, iPhone 6 Plus)
iPhone 6s Plus: 12 MP, f/2.2 (similar to iPhone SE, iPhone 6s)
Unfortunately, newer iPhone cameras have different specs (e.g. iPhone 7 or iPhone 8: 12 MP, f/1.8) so I doubt that any of these camera calibration settings would fit perfectly for them...

Not able to install my ARKit supported app in iPhone 6, but demo app by apple is running successfully on same iphone

When I try to install ARKit supported app in iPhone 6 its saying requires the “arkit” capability which is not supported by your's iPhone but then how the demo app of ARKit provided by apple is running on the same iPhone.
I had a similar question, although the purpose was different. I hope this answer helps someone:
If you have an iPhone that came out before the iPhone 6S it will not work. However, you can have an app that has ARKit if you remove UIRequiredDeviceCapabilities from the plist. This way you are able to run (although you will not see anything). This allows you to have an app that has ARKit as a bonus (and only enable/disable a button if ARKit can be used)
at WWDC 2017, Apple officially announced that minimum device required for ARKit to work is iPhone 6S
These are ARKit supported iPhone models. ARKit designed for iPhones and iPad that use the A9, A10 & A11 Processors.
iPhone 6s
iPhone 6s Plus
iPhone SE
iPad(2017)
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
For ARKit 3
People Occlusion and the use of motion capture, simultaneous front and back camera, and multiple face tracking are supported on devices with A12/A12X Bionic chips, ANE, and TrueDepth Camera.
It means ARKit 3 new features will be supported by iPhone XR and greater models.

iPad Pro simulator + cocos extremely slow on Macbook Air 4 GB RAM

iPad Pro simulators are so slow that they become practically useless when running my cocos2dx game. Theoretical FPS displayed is 60, but all animations take minutes instead of seconds (e.g. 30 seconds instead of a fraction of a second).
I made sure 100 times that Slow Animations are turned off on my simulator.
I've found this topic: iOS Simulator games run very slow (low fps) where the reasons for possible poor simulator performance are explained, but:
First, I can't deduce HOW slow their simulators are (they complain about bad FPS, my theoretical fps is good (???)). I'm getting the impression that they are able to test something while I am not
Second, I need a solution to this problem as I need to test my stuff on an ipad pro 12.9 inch and I don't have the funds to buy one for tests now :) . However, I am thinking on getting a better macbook.
I am using Macbook Air 2014 with 4GB RAM. Do you think this might be the reason? Can anyone tell me whether they are using ipad pro simulators when testing their games (Cocos, Unity, SpriteKit?), and if you get decent speed, then what are your Mac specs that might affect performance (processor, RAM?)
The simulator is not a device and it's performance varies depending on the machine you're running it on, but also the type of device you're simulating.
The iPad Pro devices are both large and have a retina display. The simulator has to process 2732 x 2048 (12.9" 5.6M pixels) and 2048 x 1536 (9.7" 3M pixels). The iPhone 6/6plus and later models have similarly high pixel counts. This takes a lot of CPU+GPU power to render all those pixels.
Your Macbook Air is decent, but it's screen has a much smaller resolution than the simulator and its GPU was chosen with its smaller screen-size in mind. The integrated intel graphics aren't that performant.
If you can test out running the same game/app as a Mac application instead you should see better performance.
My advice:
Use 30fps during daily testing (or when in debug mode) director->setAnimationInterval(1.f/30.f);, if your game requires 60fps for its gameplay then you may want to look into other options.
You can also add one of the non-retina iPad simulators for testing. iPad Mini or iPad 2. Test on the Pro simulators periodically only to check for any positioning/scaling issues.
Render to a small(er) frame buffer and then render the frame buffer scaled up into the final screen buffer.
It is always recommended to get an actual device when doing mobile development as the simulators/emulators don't provide real world performance characteristics.
Even though it's not what you're asking I'd still repeat the key point in the linked answer: Only worry about performance when running on an actual device, and find a way to not have it affect.

Cocos2d simulator / device framerate

I just started learning cocos2d for iPhone and the framerate problem hit me.
I see the framerate drop sometimes to 30 fps on the simulator but on my iPhone 5 it runs at 60 fps.
So I was wondering, will it cause me any problems on other devices? (4, 4S)
FPS (Frames per second) depends on device's hardware capability.So when you are running on simulator or old version iOS device. You will get 30 FPS.
By default FPS is 60.
So, You are on right track.
Good Luck !!!

Maximum video out resolution of iPad Mini?

I'm developing an iPad app that can employ an external monitor. When I plug my iPad 3 into my external monitor, I get back a list of resolutions from the external UIScreen object that includes 1920x1080.
When I do the same with my iPad mini, the max resolution I get back is 1600x900.
This would make me think the iPad mini doesn't support full HD external video, but the Apple specs say this:
Video mirroring and video out support: Up to 1080p through Lightning
Digital AV Adapter and Lightning to VGA Adapter (adapters sold
separately)
...which seems pretty unambiguous that it should support full HD.
Does anyone know what's going on here?
Thanks!
The iPad mini does not HAVE the resolution for 1080p (it has 1024x768 screen resolution while 1080p is 1920x1080 as you mentioned), hence, mirroring does not make sense.
Video playback, on the other hand, should work.
TV resolution can be set in Settings>General>TV Out.
The max resolution shown in that menu is your iPhone or iPad's screen resolution.

Resources