VR vs AR: the Advantages of the Two Concepts
AR-based App Development: Technical Aspects
Scope of the Augmented Reality Concept Application
Please select your cookie preferences before getting in touch
Thank you for reaching out to Sigma Software!
Please fill the form below. Our team will contact you shortly.
Sigma Software has offices in multiple locations in Europe, Northern America, Asia and Latin America.
USA
Sweden
Germany
Canada
Israel
Singapore
UAE
Australia
Austria
Ukraine
Poland
Argentina
Brazil
Bulgaria
Colombia
Czech Republic
Hungary
Mexico
Portugal
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.
VR vs AR: the Advantages of the Two Concepts
AR-based App Development: Technical Aspects
Scope of the Augmented Reality Concept Application
Every year they bring their creators more and more money, as demonstrated by 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.
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.
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.
Now let us discover the principles upon which the AR-based apps operate.
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.
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.
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.
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.
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.
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.
Vuforia | Wikitude | D’Fusion | ARmedia | ArKit | ARCore | |
---|---|---|---|---|---|---|
Marker Creation | Real-time | Real-time, can recognize several markers simultaneously | Using D’Fusion Studio, 500 preset markers | Using Google SketchUp plugin or markers created before | Markerless AR Technology | Markerless AR Technology |
Recognition Methods | Markers (including textual), 3D objects, simultaneous recognition of several markers | Markers (pictures, barcodes), GPS data, IMU, hybrid recognition | Markers (1D and 2D barcodes, simultaneous recognition of several markers), GPS data, IMU, faces, 3D objects, finger focusing | Fiducial markers, GPS data, IR and 3D camera data, IMU, 3D objects | Metric Scale technology, Ground Truth technology, Edge Tracking technology, geolocation data (GPS/ Satellite/GIS), IMU errors removal | Environmental understanding (tracking points and planes), GPS, light estimation, scale estimation, concurrent odometry and mapping |
Animated Objects Overlay | 2D and 3D | 2D and 3D | 2D and 3D | 2D and 3D | 2D and 3D | 2D and 3D |
Additional Features | Cloud storage and cloud recognition (in paid edition), in-built Smart Terrain service | Support for HTML5, JS and CSS | Support for media encryption | 3D camera feed processing | Tango Visual Positioning Service, support for Depth Cameras, SLAM, support for Unity | Tango R&D, support for Unity, Unreal Engine and AS |
We discussed applications based on augmented reality; it is time to learn about the technical side of the implementation of the VR-based app.
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.
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.
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.
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).
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).
Unreal Engine 4 | CryEngine | Unity 3D | Lumberyard | |
---|---|---|---|---|
Main Sphere of Application | Photorealistic 3D games | Photorealistic 3D Graphics | 2D/3D games | AAA 3D games (Blending, Compression, Layers, Procedural, Physic) |
Supported Platforms | PC, Mac, iOS, Android, Xbox One and PlayStation 4 | PC platforms and consoles, including PlayStation 4 and Xbox One | PC, Mac, iOS, Android, Xbox 360; Xbox One; Wii U; PlayStation 3; PlayStation 4; PlayStation Vita; Nintendo Switch; Nintendo 3DS | Windows , Mac Os, Linux, Xbox One, PS4, Android, iOS |
Supported Programming Languages | C++, Blueprints | C++, C#, Lua | C# | C++, Lua, Flow Graph (legacy), Script Canvas (1.10+) |
Compatibility with VR devices | HTC Vive, Oculus Rift, OSVR, Google Daydream, Samsung Gear VR | Oculus Rift, HTC Vive | Oculus Rift; Samsung Gear VR; Google Daydream and Cardboard; HTC Vive | Any |
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.
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.
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.
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.
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.
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.
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.
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.
Sergio has more than 20 years of practical experience in IT sales, market research, branding, marketing strategy development, and IT project management. Sergio assists large companies and startups to define and launch new services and products with a focus on software development and IT consulting. His zest for new ideas and achievements materializes into productive projects.
Linkedin profileVR vs AR: the Advantages of the Two Concepts
AR-based App Development: Technical Aspects
Scope of the Augmented Reality Concept Application
Since 2016, we at Sigma Software University have been providing corporate education services to businesses. Every year, more than 1000 graduates complete our co...
The organ transplantation chain has substantial participation from the numerous stakeholders involved in operating within the organ transplantation chain. This ...
The current rise of Internet of Things (IoT) technology has opened the door to new creative solutions to address organ logistics. In this article, we look at ho...