Source: hackernoon.com
In this article, I am going to talk about how you can become an AR/VR developer. The first thing I want to mention here is that this question is too vague and broad. The reason is that to get started in AR/V you need to have some basic software development knowledge. Next is to jump into Three.js, which allows you to create websites with 3D content. This is because you already have a good understanding of 3D graphics, graphics, computer graphics, and the creative mindset required to develop any AR experience.
Rajat Kumar Gupta
Software Engineer (AR/VR) | Technical Writer | youtuber
In this article, I am going to talk about how you can become an AR/VR developer.
The first thing I want to mention here is that this question ππ»
How can I become an AR/VR developer?
It is too vague and broad. The reason is that to get started in AR/VR you need to have some basic software development knowledge. I ask you to read this entire article to get a good understanding of what I mean.
If you prefer to watch videos instead of reading, you can watch the video on my YouTube channel here π
What I have done is to divide this article into 3 parts i.e. how to get started with AR/VR like –
- Web developer
- mobile developer
- game developer
Let’s start with number one.
How to get started with AR/VR as a web developer?
As a web developer, you most likely already have a good understanding of the basics, i.e.
- HTML
- CSS
- javascript
It is not very important that you know a Frontend framework like React or Angular. If you already know, consider it a bonus.
Next is to jump into Three.js.
What is THREE.js?
Three.js allows you to create websites with 3D content. Things like these ππ»
Check out the source code or live demo of the above ππ»
How did I learn Three.js?
I learned Three.js from a course by Bruno Simon (his website is great!). I used to find meshes, materials, textures and lighting very difficult to understand, but surprisingly Bruno explained it so well that it all became easy for me. I now have a much better understanding of those concepts.
https://tresjs-trip.xyz/
The course already has more than 4000 registrations and I have talked about why it is one of the best on the market in this video ππ»
Get started with Three.js by uploading a 3D model in your browserπ
What is WebXR?
Once you have a good understanding of Three.js, check out Google’s WebXR API.
You can combine your knowledge of Three.js and the WebXR API to do something like this ππ»
Now you can go a step further and dive into frameworks like React.js. I’m learning the basics of React.js at the moment. You can then use all of that knowledge to learn React Three Fiber.
Hopefully this should be enough to get you started with AR/VR as a web developer.
Now let’s move on to the next.
How to get started with AR/VR as a mobile developer?
This is for native Android and iOS developers only.
Cross-platform frameworks like React Native and Flutter are not covered here. That said, it is possible to create a native module on Android and iOS and create a bridge to link a React Native app with that module. Basically, you can call a method in Java through JavaScript code. I did this recently for a project, but I won’t go into the details for now.
If you want to develop apps for the iOS platform, use ARKit.
For Android, you can use ARCore. Previously there was a tool called Sceneform, which allowed developers to view 3D models within Android Studio. Unfortunately, it is now deprecated. Therefore, I recommend using the Virocore SDK. It’s basically a wrapper for ARCore and ARKit. Although it uses ARCore internally and most of the things you do with Virocore you can also do directly with ARCore, but I found it too complicated. Also, controlling the lighting of a scene, customizing materials or adding textures to a 3D object is easier in Virocore.
If you just want to make a 3D object appear in AR using your Android smartphone, then I’d suggest using ARCore’s Sceneviewer. You just cast an explicit intent to do so. 4 lines of code. That is all.
Intent sceneViewerIntent = new Intent(Intent.ACTION_VIEW);
sceneViewerIntent.setData(
Uri.parse("https://arvr.google.com/scene-viewer/1.0?file=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf")
);
sceneViewerIntent.setPackage("com.google.android.googlequicksearchbox");
startActivity(sceneViewerIntent);
Code explanation provided here
How to get started with AR/VR as a game developer?
Game developers actually have an advantage when it comes to developing AR/VR apps or AR/VR experiences. This is mainly because you already have a good understanding of 3D concepts, computer graphics, and the creative mindset required to develop any AR/VR experience.
As a game developer, you have experience in Unity or Unreal. I haven’t worked with Unreal at all, but I have worked with Unity. So I’ll talk about the latter.
To create augmented reality apps for Android or iOS, you can use any of the following AR SDKs:
To create virtual reality applications, it depends on the virtual reality platform you choose:
This list is endless. There are too many SDKs with their own pros and cons. This problem is being fixed with the help of OpenXR. I haven’t used OpenXR yet, so I can’t recommend it for now, but it looks promising as it simplifies the software development process behind AR/VR apps and extends their reach to a variety of hardware platforms.
https://github.com/KhronosGroup/OpenXR-SDK
What is the difference between an AR/VR app and an AR/VR game?
It is important to understand the difference between AR/VR apps and AR/VR games. They both have different skill sets.
- Building AR applications requires the knowledge of connecting a client application to the server, obtaining and parsing JSON to display data to the end user, and developing visually pleasing user interfaces through code.
- On the other hand, game creation requires knowledge of developing complex game mechanics, physics, reward loops, AI programming, procedural algorithms, and multiplayer game development.
conclusion
Hopefully, this article will make it easy for you to understand how to build AR/VR experiences as a web, mobile, or game developer. If you know someone who is interested in developing AR/VR experiences, I would ask that you kindly share this article with them to help them get into this exciting and rapidly evolving domain.
Subscribe to my YouTube channel to learn more about AR/VR.
related stories
CHARGING
. . . comments and plus!
Read More at hackernoon.com