Log in or register to post comments

Performance tips

January 9, 2011 - 4:30am #1

Right now if I make a basic AR scene in Unity (ARCamera, ImageTarget, Cube and a script which output FPS every 100 frames) I get the following performance (on NexusOne, Android 2.1):
1) 20-26 FPS (when CameraDeviceMode=OptimizeSpeed)
2) 17-21 FPS (when CameraDeviceMode=OptimizeQuality)

Questions:
1) Is it expected performance?
2) What does this CameraDeviceMode do: does it optimize detection or camera feed? I couldn't notice any difference, except that I get less FPS with OptimizeQuality.
3) What impact "multi frame enabled" has? It seems to drop FPS by a couple, but I couldn't see a big impact for detection quality. Are there special conditions when it would be more noticeable?
4) Which phone has best performance when running QCAR?
5) If I wouldn't use Unity extension and would use QCAR SDK directly, would I get much better performance? If so how much?

I'm using MaxSimultaneousTargets=1.

Many thanks,
Paulius

Performance tips

August 14, 2012 - 6:04am #9

Hi 

Unfortunately there is no guarantee of frame rate as it depends on so many different factors, not least the device, camera resolution, #simultaneous targets and so on.

Testing against iOS devices as a start will provide a benchmark across different processor speeds, GPU speeds and single/multi-core cpus as well.  However when extending this to Android devices is where there is a significant scope for variation, and basically Vuforia will aim to do the best that it can across these. If you encounter a specific problem with a specific device, then let us know so we can investigate further.

HTH

Performance tips

August 14, 2012 - 2:00am #8

that would also interest me.

 

Performance tips

August 13, 2012 - 4:34am #7

Hi all, and first sorry if it's not directly regarded with the topic. I would like to know how you can know the frame rate (fps) of your applications. Either with Vuforia or any other interface.

Thanks in advance.

Performance tips

August 13, 2012 - 4:34am #6

Hi all, and first sorry if it's not directly regarded with the topic. I would like to know how you can know the frame rate (fps) of your applications. Either with Vuforia or any other interface.

Thanks in advance.

Re: Performance tips

January 10, 2011 - 11:29am #5

Unfortunately, you cannot disable the video background in the Unity extension without losing tracking as well. This is something we will expose in a future update. I'm sorry to hear that performance is so poor on the Incredible, it really does vary depending on the device.

- Kim

Re: Performance tips

January 10, 2011 - 11:22am #4

Ha! I'm developing on the HTC Droid Incredible, and the frame rate with just one cube in the scene is 7-8 fps! (with Optimization for Speed.)

And the framrate with my app running is around a dismal 4-5 fps.

Is there somewhere I can turn on/off the background video rendering? I don't think I'll need it all the time, and I would probably benefit from the framerate increase.

thanks,
kedar

Re: Performance tips

January 9, 2011 - 8:07am #3

Thanks, Kim!

I'm not really planning to stop using Unity extension - I was just trying to understand how big advantage "plain SDK" users have :)

Re: Performance tips

January 9, 2011 - 7:38am #2

The CameraDeviceMode option affects the resolution of the camera image drawn to the background. OptimizeQuality results in a higher-resolution image, but is more costly to render per frame. The actual resolutions picked are device dependent, but in general OptimizeSpeed

Multi Frame Enabled affects the way multiple targets are detected. If your application can track two different targets, the tracker can either look for both targets in each frame, or it can split the work over multiple frames. If this option is checked, the work is split, which should result in a better frame rate but could cause a slight delay in detecting new targets.

I can't really say which phone has the best performance, but in general the newer models perform better.

You would get better performance by using the QCAR SDK directly with the Android SDK/NDK. The performance increase would be device dependent, but I think you'd see a jump of around 10 fps on your Nexus One (that's just ballpark though). You would of course have to do all the rendering yourself using OpenGL, and you lose other nice Unity features (math and physics libraries, GUI manager, etc.) It's a tradeoff, performance vs. ease of development.

- Kim

Log in or register to post comments