What is the Difference Between Augmented Reality and Virtual Reality?

Augmented reality (AR) and virtual reality (VR) are among the main trends in software development, which confidently gain their fans, along with artificial intelligence, IoT, and blockchain.

Every year they bring their creators more and more money, as demonstrated by statistics:

AR and VR market statistics

In this article, we will talk about the main nuances of augmented reality vs virtual reality comparison and discuss, which tools developers can use in each case.

What is the difference between virtual reality and augmented reality? What do these concepts mean?

What is an augmented reality? The term itself, which designates this concept, appeared in the early 1990’s but first practical applications saw the light only in 2014. The particular example of AR hardware was famous Google Glass smart glasses based on the Android OS. Their main purpose was to provide the user with digital data about objects they looked at. Google Glass operates using a built-in video camera. This development captivated the target audience so much that by 2017 AR-based applications became some of the most downloaded globally (the sensational Pokemon Go game being the brightest example). That is why experienced AR developers are in high demand currently.

How about virtual reality? VR apps provide the user with some alternative environment (for example, a post-apocalyptic future in a zombie game or an interior/exterior of a building that does not exist in reality). To display such graphics, special devices are used, like glasses or helmets with in-built small displays that reliably reflect the scenarios created by developers.

So, what is the difference between augmented reality and virtual reality? The difference between augmented reality and virtual reality is that in the former case, virtual overlays are superimposed on top of the real objects that the user sees. In turn the latter displays the completely changed reality. Because of this, the AR application can operate just fine on a medium performance smartphone. But to run the VR application notable computing power and specialized gadgets are required.

Now let us survey the main advantages and disadvantages of virtual reality vs. augmented reality concepts – both from the user’s and developer’s point of view.

VR vs AR: the Advantages of the Two Concepts

Before we start reviewing the technical aspects of implementing software based on these two concepts, let us find out what advantages are inherent to each of them.

AR vs VR: benefits

Benefits of VR Apps:

  • VR apps make it possible to implement the most daring and non-standard ideas that their creators can imagine;
  • Due to their insufficient prevalence, competition between applications in this area is much lower than in the case of AR;
  • The market value of a VR-based app can exceed the cost of the most expensive AR-based apps in times.

What about AR apps? What are their advantages? Let us list them:

  • No need to use special gadgets – just a regular smartphone or tablet;
  • Lower development cost (for AR-based applications, simpler software tools are used and less time is usually spent);
  • Such applications are more common and habitual, and, therefore, have a broader target audience.

Do you have a better understanding of augmented vs virtual reality comparison? Excellent! Finally, we can plunge into the technical aspects of implementing such applications and start learning principles and tools, with which they are created.

AR-based App Development: Technical Aspects

Now let us discover the principles upon which the AR-based apps operate.

Augmented reality app example

To date, all applications, based on the concept of augmented reality, are built around two different algorithms.

The first depends on the usage of special visual markers. In this case, all the graphics data that comes in real time through the video camera in the user’s gadget is thoroughly analyzed. In particular, it is compared with the preset marker patterns and a separate scenario of the further actions corresponds to each of them. Thus, if the resulting picture or some of its parts were recognized to be coincident with a specific marker, the application immediately starts a certain algorithm. Software superimposing virtual objects on top of real ones is based on this principle.

The second principle is based on recognizing the geolocation data obtained using GPS, gyroscopes, accelerometers, and other sensors built into smartphones and tablets. Comparing this information with predefined locations, the application supplies the user with the data provided by the developers. For example, a software solution will be able to tell the users what tourist attraction is before them.

The most innovative modern applications combine both these principles, which is further facilitated by frameworks that simultaneously support both markup and non-markup development scenarios. We will discuss them a bit later.

Scope of the Augmented Reality Concept Application

Currently, the scope of software based on the concept of augmented reality is extremely wide. It can be both gaming applications like Pokemon Go and purely commercial software, such as the popular IKEA interior showcasing app. Also quite popular are general education applications, such as interactive guides.

Frameworks for the Creation of AR-based Apps

Now let us review the most popular frameworks used to develop the AR functionality.

1. Vuforia

Vuforia is the framework for the creation of AR applications for iOS and Android platforms, supplied by Qualcomm, the world-leading vendor of wireless communication technologies and SoCs for smartphones and tablets. Vuforia is based on the QCAR library (C++). This library contains all the tools necessary to visualize the augmented reality objects – from rendering to targets – objects, on top of which virtual overlays will be drawn (although, in fact, there is also a special Target Manager for this). Vuforia Web Services can be used to store targets. To get acquainted, you can install a free version with a limited set of features. For example, it does not support Cloud Recognition. Note that this solution supports OpenGL and has a built-in Smart Terrain service, which can recognize the terrain within the recorded frame.

2. Wikitude

Wikitude is one of the most popular paid solutions for the creation of AR apps based on markers and geolocation data for iOS, Android, Windows Phone and Blackberry platforms. To help you understand how advanced this framework is we will mention that it was used to create the program part of the Google Glass project. With Wikitude, you can create 3D models in fdx/collada formats, and draw extremely responsible animations based on the JS programming interface.

Wikitude scene example

3. D’Fusion

If you are new to the development of AR-based apps but you want to create something advanced, you definitely want to study the D’Fusion. Having both free and paid versions, this tool is intended for building applications (including cross-platform) for Android, iOS, Flash, and Windows. With this framework you will not need to write code that recognizes small details (like eyes or mouth) – all this has already been done for you. In addition, you can experience the benefits of accelerated rendering built into the D’Fusion Computer Vision package, as well as the ability to simultaneously recognize multiple markers (out of 500 built-in).

4. ARmedia

This platform is designed to create cross-platform solutions based on iOS, Android, Windows, and Flash, which can be managed through the cloud. It provides with both paid and free versions. With ARmedia, you can create software that recognizes markers in the real-time (this requires installing Google SketchUp), as well as software that interprets geolocation data. Also, it will not be superfluous to mention the presence of an advanced 3D-tracker SDK by Inglobe Technologies, which is used by all the leading development companies.

ARmedia scene example

5. ARKit

Our list would not be complete without this SDK for the iOS platform. Based on the incredibly extensive ARSession class, ARKit significantly lowers the entry threshold for newcomers into the AR-based software development niche. Moreover, in this SDK, ARSCNView and ARSKView are used – descendants from SCNView and SKView respectively. They serve for displaying live video and rendering 2D/3D images. It is worth mentioning that the developers of ARKit made it completely compatible with Unity and Unreal Engine. This positively affects the number of really high-quality applications, which appear daily.

ARKit scene example

6. ARCore

ARCore is an SDK for the development of AR apps for the Android platform – it runs on Java/OpenGL, Unity, and Unreal. Its key feature is motion tracking, which is implemented by combining a camera feed and gyro data. Also, this SDK very accurately identifies objects in the environment, thanks to the built-in mechanisms for the recognition of horizontal surfaces. And, finally, we must mention the possibility of assessing the level of illumination in the surroundings, thanks to which virtual objects look even more realistic.

AR Frameworks Comparison

VuforiaWikitudeD’FusionARmediaArKitARCore
Marker CreationReal-timeReal-time, can recognize several markers simultaneouslyUsing D’Fusion Studio, 500 preset markersUsing Google SketchUp plugin or markers created beforeMarkerless AR TechnologyMarkerless AR Technology
Recognition MethodsMarkers (including textual), 3D objects, simultaneous recognition of several markersMarkers (pictures, barcodes), GPS data, IMU, hybrid recognitionMarkers (1D and 2D barcodes, simultaneous recognition of several markers), GPS data, IMU, faces, 3D objects, finger focusingFiducial markers, GPS data, IR and 3D camera data, IMU, 3D objectsMetric Scale technology, Ground Truth technology, Edge Tracking technology, geolocation data (GPS/ Satellite/GIS), IMU errors removalEnvironmental understanding (tracking points and planes), GPS, light estimation, scale estimation, concurrent odometry and mapping
Animated Objects Overlay2D and 3D2D and 3D2D and 3D2D and 3D2D and 3D2D and 3D
Additional FeaturesCloud storage and cloud recognition (in paid edition), in-built Smart Terrain serviceSupport for HTML5, JS and CSSSupport for media encryption3D camera feed processingTango Visual Positioning Service, support for Depth Cameras, SLAM, support for UnityTango R&D, support for Unity, Unreal Engine and AS

VR-based App Development: Technical Aspects

We discussed applications based on augmented reality; it is time to learn about the technical side of the implementation of the VR-based app.

Scope of the Virtual Reality Concept Application

At first glance, it may seem that the concept of virtual reality can find its application only in the niche of gaming software. Plus, the main obstacle to the wide distribution of this type of software is the considerable cost of virtual reality helmets. The minimum cost has the Google Daydream device – $99, which is used in conjunction with a smartphone.

VR device example

However, as the tendencies of the last year show, prices for such gear are starting to decrease (thanks to a cutback in the cost of technologies used in their creation). And this means that very soon all sorts of applications for 3D tourism, modeling of architectural sketches, training in medical matters, etc., will enter the mass market.

Principles of the Virtual Reality Applications’ Operation

As already mentioned, the main role in creating an alternative reality is carried by the display gear with a computing device connected to it. Possessing the unique aspherical lenses, VR helmet creates the effect of user’s presence in a virtually created environment. In this case, all the elements that are displayed with the help of lenses can move, using the data obtained through the gyroscope. Gyroscopes and accelerometers help in tracking the position of the head and allow looking around and traveling within the virtual world.

3D Graphics Engines for the Creation of VR-based Apps

Let us review the 3D-engines that help to implement the virtual reality functions in applications. It should also be noted separately that in addition, you will need a special 3D modeling software (like the cross-platform Blender app), sound/voice recording and editing (like Audacity) and texture creation (like Gimp).

1. Unreal Engine
Unreal Engine is a completely free and fairly old engine for the 3D game creation. It was released in 1998, but its application into the development of VR solutions started only around 2015, with the release of 4th version. Unreal Engine is so good that with its help you can create objects that are visually identical to the real ones. In addition, the UE editor has a bunch of useful features, such as the ability to view created objects from inside a virtual scene, use the controller to move over long distances, and change the scale of scenes. And most importantly, it can manipulate objects, capture and transfer architectural elements, copy and scale them.
UE scene example

2. Unity 3D
Unity 3D is no longer an experimental startup. Currently, it is one of the leading platforms for the creation of a virtual reality, which is so intuitive and easily understandable that even novice users who previously had no experience in creating such software can use it. For Unity 3D, even an official Google SDK for the VR objects creation exists. For the development, C# and JavaScript programming languages are used. This solution is provided free of charge (it should be noted that there is a paid version, but to build a basic functional the free version will be enough).

Unity3D scene example

 

CryEngine is one of the most famous solutions for the development of 3D-games and VR-based applications. This engine has long been known for its visualization capabilities of three-dimensional objects. In addition, its advantages include the capabilities to program in C#, as well as support for DirectX 12 and FMOD Studio. Possessing an extremely advanced volumetric system, CryEngine is rightly considered among the best engines for VR projects. In particular, this system allows optimizing 3D rendering and minimizing the lags caused by capacitive graphics. Also, CryEngine is characterized by a special raytracing system that allows you to focus the entire load when rendering in real time on the GPU. As for the price, this engine is not free, but you can download and try it fully before paying.
Cryengine scene example

 

4. Lumberyard
In February 2016, Amazon introduced its brainchild for the creation of the VR-based application – Lumberyard. If we talk about the technical side of this solution, Lumberyard, in fact, is an updated and more advanced version of the above-described CryEngine. This is a completely free software solution of the AAA class, which is fully integrated with the Amazon web services. This feature allows you to deploy the VR-based apps onto Amazon’s cloud servers and even implement the broadcast. At the moment, this software is actively used to create software for Windows, Xbox One, and PlayStation platforms.
Lumberyard VR-based application

 

3D-engines Comparison

Unreal Engine 4CryEngineUnity 3DLumberyard
Main Sphere of ApplicationPhotorealistic 3D gamesPhotorealistic 3D Graphics2D/3D gamesAAA 3D games (Blending, Compression, Layers, Procedural, Physic)
Supported PlatformsPC, Mac, iOS, Android, Xbox One and PlayStation 4PC platforms and consoles, including PlayStation 4 and Xbox OnePC, Mac, iOS, Android, Xbox 360; Xbox One; Wii U; PlayStation 3; PlayStation 4; PlayStation Vita; Nintendo Switch; Nintendo 3DSWindows , Mac Os, Linux, Xbox One, PS4, Android, iOS
Supported Programming LanguagesC++, BlueprintsC++, C#, LuaC#C++, Lua, Flow Graph (legacy), Script Canvas (1.10+)
Compatibility with VR devicesHTC Vive, Oculus Rift, OSVR, Google Daydream, Samsung Gear VROculus Rift, HTC ViveOculus Rift; Samsung Gear VR; Google Daydream and Cardboard; HTC ViveAny

Stages of AR/VR Development

Regardless of the concept upon which your future application will be based, be it AR or VR, the process of development will contain the following four stages, each having its own price.

Augmented reality and virtual reality apps: cost of development

– Engineering

The first thing you need to do is to engineer the future project, including detailed documentation. This includes the selection of such attributes of the future software, as the most suitable framework, integration with APIs, enhanced security, custom design, etc. At this stage, you will also need to distribute responsibilities among individual members of the team and also draw up comprehensive guides for their actions. Then follows the final coordination of the nuances of the development and a possible adjustment of the plan. Having an extensive project documentation will allow making a last but not least step – provide the customer with a detailed and refined cost estimate based on performed calculations of required man-hours and expenses.

– Selection of Development Tools

Creating an AR/VR-based application from scratch is an ungrateful task. Yes, of course, if you are not tied by the limitations inherent to this or that framework, the development process may seem much more flexible. Nevertheless, you should definitely take into account the objective complexity of implementing these two concepts, as well as an incredible variety of extremely convenient and advanced development environments. The decision to eschew them may turn into hard-to-find mistakes. Or you may even get stuck halfway, realizing that you cannot connect the functionalities described in separate files correctly. Many of these frameworks are paid. And this means that the cost of their use will contribute to the pricing of the project as a whole.

– Development

The most difficult and resource-consuming stage of software implementation is the development process. Not having the project documentation it would be really hard understanding how long it will take. In addition to the basic functionality, you will undoubtedly have to equip your software solution with some additional options. It can be integration with social networks, multilingual interface versions, push notifications sending, etc.

– Testing

Sometimes, when the development of software is handled by a small team or it is intended for a large enough target audience, there is a need to hire an outside QA team. They will study your application not only in the “office” conditions, but also in the “field”. Typically, gaming applications also undergo a thorough beta test (a testing by volunteer users). This stage can take a while because in case of detecting serious bugs the application will have to be returned for corrections.

– Support and Maintenance

This is the final after-release stage. If your project is for public use, you probably want to upload it to Google Play or the App Store and start the marketing campaign. By the way, sometimes the last event at its cost is comparable to the price for the work of your entire team of programmers. As for technical support, you cannot do without it either.

AR vs VR: Summary

Let us sum up. As you can see, each of these concepts bears its own perks and complications. Nevertheless, the process of the creation of applications based on AR and VR using modern template solutions (frameworks) can be quite simple and fast. Therefore, if you have not previously participated in the development of such software, we highly recommend that you try it right now. With a thorough approach to the development process, all the invested funds will pay off very quickly. Therefore – do not delay.

Augmented reality and virtual reality apps: cost of development

If you do not have a dedicated development team with required skills and experiences for the creation of AR/VR application, we will be happy to assume this responsibility. As a result, you will receive an extremely effective and modern solution that will rightfully compete with other developments in this niche.

Share article: