Shortly after I uploaded my LA River 3d scene last year, I began browsing for inspiration for my next effort. The idea was to find something that would be a bit of a modeling and optimization challenge to take me out of my comfort zone.

I zeroed in on the Handelsbeurs in Antwerp, Belgium, pretty early on, though it took a few more months (and another big scene), for me to muster the courage to start on it. After several months of work, it is now finally available for you to own and play with.


Looking at the photos, it’s easy to see why the project appeared so daunting at first. Built in the late 19th century in a neo-Gothic style by architect Jos Schadde, the Antwerp Trade Fair is far more over-the-top than any actual Gothic building, even though it incorporates elements of earlier structures on the same site. Part of what makes it so special is that it flouts its use of modern construction techniques instead of hiding them behind an historicist skin, as so many buildings of the time did. The sophisticated glass roof resting on gracile metallic buttresses and adorned with a riot of floral decorations is not just visually rich and complex, it is a bold engineering statement that spans the entire expanse of what had previously been an open courtyard.


As is often the case when modeling such scenes, researching the building and its underlying structure makes the complexity feel less intimidating. The use of repetitive elements meant I only had to model and texture about half the building. It also allowed me to instance the rest, which, thanks to some planning, reduced the VRAM footprint of the scene on the GPU.

Still, with such a wealth of details, I had to optimize my geometry from the start, for instance by trying not to use subdivision modeling and stick to simple poly-modeling whenever possible. Below is a look at what the geometry looks like (and yes, the floor tiles are modeled, which if you ask me is a must!).

And here is the render.


I also decimated a few hand-sculpted models and tried to make the textures do a lot of the work (I used hand-scanned sandstone textures captured in Palma de Mallorca quite a bit whose normals are pretty good at catching and breaking highlights).

Another decision I made early was to build the scene so that it could be rendered in Chaos’s Vantage without losing much fidelity compared to V-Ray, my standard workhorse. Vantage is a real-time raytracer with its own 3D interface. While it isn’t as fast or full-featured as some other real-time options around, its big appeal for me is that it understands V-Ray scenes and renders them out-of-the-box with rarely any trouble thanks to a useful exporter.

One limitation is that Vantage doesn’t support some of V-Ray’s mode sophisticated maps such as dirt and edges, making it harder to rely on procedural materials. It also only supports one set of UVs. To get around this, I used Substance Painter to paint masks for some of the materials and used these to blend between textures using a simple composite map, which Vantage does support.

The result was pretty convincing, with not a huge difference between the V-Ray and Vantage outputs. For comparison, all the stills on this page are V-Ray renders while all the animations and the still image below are done in Vantage.

One big remaining limitation of Vantage for me is the absence of atmospheric fog, which I feel plays a crucial role in creating realism. Atmosphere is a medium and even if it is super subtle, it contributes a lot to the sense of scale and the quality of the light, something that Vantage’s simple Z-depth fog doesn’t really manage. The still below illustrates this. This one isn’t subtle at all, but all the stills in this post have some environmental fog and don’t shout it from the rooftops.


I’ve tried to draw Chaos’s attention to this, without much success so far, so if you are a Vantage user and you agree with me, feel free to weigh in and join the two-person chorus. If Eevee can do it, surely Vlado can do it even better!


That’s it. If you’re intrigued and you’re deep into this 3D thing, go grab the scene and let me know what you do with it. Bear in mind it is 30-million polys. While that’s pretty lightweight these days, it will need 10 to 14 GB of VRAM to render properly. I’ll end this on a couple of animations, which you’re probably better off watching directly on Youtube at full resolution.