View Full Version : Real-time Architectural Visualization using Unreal Engine 3

05-14-2011, 09:57 AM

When VPR can generate this in real-time that will be cool. It will eventually arrive.

Elmar Moelzer
05-14-2011, 12:41 PM
Very different technologies. One is a 3D game- engine, the other thing is a software renderer.
Also note that Unreal 3 costs a few hundred k USD.

05-14-2011, 01:00 PM
How does vpr react on baked textures.. any speed increase? Haven't tried, worth a test ..

Keep in mind, in this example, you could bake everything, turn off gi (and even lights!), and have a fast scene.

UDK allows of couse moving lights, but bakes certain things in clever ways, to imitate changing lighting schemes. A huge amount is pre-rendered or processed.

In LW, you could for example bake the AO into the textures, and then use direct lights and no GI.

edit edit:
UDK also uses normal maps in very clever ways. Not only to imitate much higher-resolution geometry, but also to get correct shading and specular reactions to position and lighting changes .. not sure how VPR deals with this in terms of speed.

05-14-2011, 01:19 PM
i agree, with prebaked textures you maybe can do this in realtime, not in VPR but in FPrime (or Unity)

05-14-2011, 01:27 PM
.. Or you just need the machine Rob was using at Siggraph last year ;)

05-14-2011, 01:46 PM
even lights?

light calculation (checking whether spot is seen from light or is in dark) is the most time consuming task in whole 3d rendering..

Such light as area 4 quality has 16 light samples (because 4 * 4 = 16). For each one there is casted ray from spot to light, to detect overlapping with some geometry. If you're rendering with 9 AA passes these 16 samples become 16 * 9 = 144 executions (45 millions executions for 640x480, just one light). Then count what if this spot is seen from reflective surface. It quickly grows to billions of executions of basic light calculation, the deeper Recursion Limit is used. When I added counter in volumetric plugin to check how many times mine routine is executed, 32 bit integer counter has been exceeded (2 to 31 power = > 2.1 billions), and it was simple scene, but all/most surfaces were reflective and Recursion Limit was default, 16.

Turn off Render Globals > RayTrace Shadows, and any scene will render in mili seconds.

Elmar Moelzer
05-14-2011, 01:47 PM
CPU- renderers like VPR and LWs own renderer are very flexible. They will do many things and complex things without getting much slower.
GPU renderer like the one in Unreal will get slower very quickly as things get more complex.
Both fullfill very different tasks. I think that having a real dedicated 3D- engine that LW can either export to easily or- even better- that ships and is integrated with LW, would be a better way of doing this.

05-14-2011, 01:54 PM
even lights?

I meant bake the lights into the textures (possible in the video on that link), sorry if that wasn't clear ..

You will barely find a 'procedural' texture anywhere in a game engine, unless it's a simple trick to deal with water textures or similar. Everything is pre-rendered to minimise realtime render slowdown. This can of course lead to inflexible scene quite fast ...

Cryengine is a good example .. the Cryengine 2 looked so good because everything was a photo :) .. but the new engine does some very clever tricks with DOF, GI colour bleeding etc, and obviously leans heavily on the graphics card. This takes us into another discussion (Try opening another 3D app on a machine running Octane(GPU) renderer, which only one graphics card in your system ...)

05-14-2011, 02:05 PM
I agree, prebake everything and you can get pretty fast render and VPR update in LW.

05-14-2011, 02:19 PM
Hehe.. I would say "especially lights", not "even lights"..

Elmar Moelzer
05-14-2011, 02:51 PM
I agree, prebake everything and you can get pretty fast render and VPR update in LW.
But VPR is not meant to do what the Unreal engine does. It is made for a very different purpose and works very differently as well. The Unreal engine is GPU accelerated and therefore fast, but less flexible. VPR is based on the CPU and because of that a little slower, but more flexible.
You are right though with prebaking and a VERY fast CPU, you might be able to get close to realtime framerates at a good resolution out of VPR.
It still kinda defeats the purpose though.

05-14-2011, 03:20 PM
In 3d applications pre-baking can be replaced by caches, like GI cache. But renderer must be smart- if user didn't change attribute which is used by some cache, it's not cleaned up (after closing F9 render window).. f.e. ambient occlusion cache should not be touched unless geometry has been changed (by displacements, movement, replacement, generation of geometry etc).
Currently VPR is the most inpatient interactive renderer available on LW, restarting render after even moving foreground window on top of Layout. That's ridiculous.