|
The Basic Types of Rendering
Goals
This chapter introduces the basic attributes of pre-rendering, interactive rendering, and real-time rendering.
Content in a nutshell
Pre-rendering and interactive rendering provide the most realistic simulation of light and materials but the process is slow. Real-time rendering is fast (as the name suggests) and in many cases the quality is acceptable. Rendering can be done on one computer or using multiple computers to speed up the process.
Rendering
Creating a visualization based on 3D data is called rendering. Based on the geometry, materials, environment and lighting the computer simulates how light interacts with the scene (and the virtual camera).
Simulation can take a lot of time and processing power when physically correct results are needed. Different rendering engines use different simulation methods (e.g. raytracing, path tracing) and may also ignore various physical phenomenon to make the process faster.
Rendering speed and quality (+workflow) are important factors when choosing which rendering software to use in your project.
Pre-rendering / offline rendering
Pre-rendering means that the user must first set up the scene and then wait for the image to render. After some time (dependent on the scene complexity, render quality, resolution, software used and computing power) the render will finish, and an image is created.
Render times can hugely vary from seconds to tens of hours. Even though the process can be slow, pre-rendering (and interactive rendering) can produce the highest quality available and use more advanced techniques for simulation.
Interactive rendering
Raytracing and path tracing can be done interactively or “semi-real-time” (also marketed as real-time). This means that the viewport updates when changes are made (or constantly). At first the image is very grainy, but it resolves into a cleaner picture progressively (after more samples are calculated). This kind of real-time workflow is especially helpful because it provides fast & correct feedback for the user – no long waiting is needed to evaluate the changes made.
But even though the workflow is real-time, final production renders typically require a longer wait (enough samples). This kind of pre-rendering is called progressive rendering - software renders all the pixels simultaneously and gradually increases the image's quality.
Progressive rendering (2 samples, very grainy) Picture: Anssi Ahonen
Progressive rendering (200 samples, less grain) Picture: Anssi Ahonen
Real-time rendering
Unlike pre-rendering, real-time rendering happens as the name suggest, in real-time. Instead of seconds render times are milliseconds which is fast enough to be provide interactivity – rotate the model and the viewport updates accordingly.
A very basic example of real-time rendering is any CAD software viewport, where the user can manipulate the model. This very simplified view of the scene is good enough for modeling and setting up the scene. Since the mode is so simplistic – the word “real-time rendering” is somewhat rarely used in this context (real-time view).
A basic rendered viewport in CAD software (physically incorrect, for modeling). Picture: Anssi Ahonen
A better example real-time rendering are games where the render engine must create clean but realistic visuals very efficiently. This is achieved by using different mathematical shortcuts and tricks to make the process faster. This also means that the end result is not physically correct even if it might look realistic at first glance.
Game engine-based visualization software has become popular in different areas of architecture where buildings and their surroundings need to presented interactively. With the advances in software and hardware technology raytracing/path tracing features are becoming part of the game engine-based visualization software also.
Similarly, bespoke real-time visualization software are coming to the market using similar technology. All this is to narrow the quality gap between pre-rendering and real-time rendering.
Rendering with Enscape. Video: Fanyi Jin
Picture: Fanyi Jin
Landscape architecture point of view: Lumion is very handy for making environment scenes. You can build irregular terrain, adding trees, people, traffic, and other features in Lumion.
Network rendering, render farms and cloud rendering
Rendering can require a lot of computing power and/or time. Making a single computer more powerful becomes exponentially more expensive the more cutting-edge hardware is needed.
Luckily, many software products have network rendering support which makes it possible to use multiple networked computers for rendering. This can also be purchased as a service and various so-called render farms sell processing power for their clients. Cloud-based solutions provide a similar thing but sometimes provide a more integrated user experience.