WebGL visualization sounds really promising, however, it is either going to happen in the farther future or never at all. Let me jump into this. I’ve seen what is available, I’ve seen a website which does exactly what this article is about. Also seen a video… yeah, as probably if you try it yourself through an internet connection, it is going to be really slow. Let me share what I’ve experienced when trying out the technology.
The WebGL problem
First of all, its far from beautiful, WebGL is limited in a few ways. I’ve seen bits and pieces of effects that are essential to achieving a nice realistic look in visualization, but not all at once. Never. So to raise the question of why? I have a simple answer, it is too slow. At least for now in 2018. Archviz 3D visualizations are at the minimum file size of 100-200 megabytes. This comes from the 3D models itself as well as the textures covering the 3D models. What would you do if you have a choice of waiting for minutes, maybe a half an hour (depending on your internet speed) for something to load? Would you wait looking at a web browser window or download the file in the background and start it whenever you want? You also have to take into consideration that an error whilst loading the WebGL content can break the whole thing. Then you have to start it all over again. I mean the downloading.
Lacking Speed of WebGL
There are parts of a visualization that cant be avoided to make it look really good. Shadows in the current state of real-time experience are not generated in real-time but calculated before it is presented to the viewer. When the artist builds the scene. Therefore they are stored as different resolution images in the 3D scene, which takes up a lot of space. So let’s take an example of a wall with a wallpaper on it. You might think that a wall with wallpaper is ok, something that you can repeat. With the same pattern repeating, however, it has nothing to do with the shadows on that exact wall. Baked shadows on objects are a new layer of images to be included with a nice visualization.
An average display in 2018 is at the screen resolution from 1300px (average laptop) width to 2500px (27″ inch iMacs). So to make that wall look sharp, we need textures of at least 1300px width. Obviously, there is a height as well, but for this example, it is not that important. So we need at least fullscreen size images, sometimes two or even more for one object when the material needs different textures. This is to make it look realistic. Physics-based 3D materials are complex calculations. Sometimes they also need a lot of textures to channel in the material. So this is the main reason that boosts the file size of real-time 3D visualization and makes it fairly impossible to achieve a nice visualization in real-time in a web browser.
WebGL Visualization Conclusion
Lacking the advantage of an already downloaded file has, WebGL visualization won’t be able to catch up until internet speeds will increase to the point where a few dozen megabytes to download will happen in the blink of the eye. That is not going to happen in the near future. We reached great multipliers in different areas of technology – like storage. Not in internet speed though. This is the greatest bottleneck of WebGL. This leaves the WebGL technology to be in an overoptimized state which is not optimal for great looking stuff.
However! Archviz 3D offers WebGL technology based visualizations as well. Probably the best use of WebGL today is to use it as a platform to show 3d objects in a browser and keep it as simple as possible. To achieve the best look, a normal interactive 3D visualization has to be built first. In this scene, we can capture 360-degree panorama images that can be used as a texture for spheres to look at in WebGL and that is the best result you can get from it at the moment. This is a decent way of using WebGL for visualization, and have some interactivity as well. Think of it how google maps works. You can look around and click on the arrow to move a bit away from the current view into a new one. However, I have to warn you that captured 360 spheres have a limit on resolution, sadly.