Global illumination rendering engine for ArchiCAD

Written by György Antal and Ferenc Csonka,

June, 2001.

Budapest

Table of contents

1. Requirements for a usable global illumination engine in ArchiCAD

2. Properties of ray-tracing methods

3. Properties of finite element based methods

4. RenderX

5. Radiance

6. A new material settings dialog proposal

6.1 Material settings dialog of other 3D programs

6.2 The planned material settings dialog

Index

1. Requirements for a usable global illumination engine in ArchiCAD

  • slightly fast solution:
  • direct illumination must be given approx. immediately
  • approximated indirect illumination is given within a short time
  • full illumination can also be calculated and rendered
  • global illumination effects:
  • color bleeding
  • soft shadows
  • refraction, reflection (mirror), caustics
  • noise-free, visually pleasing images
  • low memory requirements (directional basis Galerkin radiosity is not suitable)
  • physically accurate rendering
  • may support animation sequences, walkthroughs
  • may support panoramic images and parallel projection

2. Properties of ray-tracing methods

  • slow solution with simple scenes
  • does not require tessellation
  • direct and indirect illumination can be separated
  • efficiency is increasing proportional to scene complexity (compared with scan-line algorithms)
  • low memory complexity
  • accurate global illumination effects
  • to achieve noise-free images:
  • deterministic algorithms (e.g. recursive ray-tracing): faster, but biased
  • stochastic methods with many samples-per-pixel: slower, but unbiased
  • image-based solution => difficult to support animation sequences, walkthroughs

3. Properties of finite element based methods

  • require tessellation
  • two types of finite element algorithms: radiosity (diffuse and directional) and finite element based stochastic iteration
  • relatively fast solution for the projected illumination problem
  • direct and indirect illumination can be separated
  • deal with planar surfaces (often convex polygons or triangles)
  • large memory requirements for radiosity and moderate for stochastic iteration
  • the original mesh often requires further meshing => more memory requirements
  • deal only with diffuse or glossy surfaces
  • noise-free, visually pleasing images
  • object space methods => support animation sequences, walkthroughs

4. RenderX

4.1 Conversion of data structures

Since we use iteration (finite element) based method, our solution handles simple planar objects (triangles). The original AC triangle mesh is further meshed before starting the iteration (discontinuity meshing and wall-floor intersection meshing). Our rendering engine uses parallel ray-bundle tracing, which ensures diffuse, glossy and not too specular reflections while the memory requirements is similar to any diffuse radiosity solution. Comparing with the radiosity approach with the same memory complexity, our algorithm handles the non-diffuse effects as well.

4.2 Attributes of the surfaces

We use physically based materials, which can be converted from ArchiCAD non-physically based shaders. We use the following surface attributes:

  • emittance
  • diffuse and specular reflectance
  • diffuse and specular transmittance
  • refraction index

The following main problem was come up during converting the ArchiCAD material attributes:

  • diffuse albedo + specular reflectance can be greater than 1, i.e. 100%, which means a surface can be reflected more energy than the incoming one (the law of energy-conserving is violated)

4.3 Attributes of the lights

Now we use area light sources, because they have physical interpretation. We simulated ArchiCAD's point, directional and spot lightsources with emissive small triangles.

Every global illumination rendering algorithm uses physical data (power, intensity etc.). Our engine also uses these concepts.

4.4 Settings for the rendering algorithm

We use some settings for tessellating the original ArchiCAD mesh and a checkbox for discontinuity meshing. We use some settings for choosing the appropriate shadow generation method, which can decrease the tessellating level. Our engine uses some settings for tone mapping.

4.5 Important Q&A

4.5.1 What kind of algorithm does your Engine support? Name the background of it (publication, research paper etc.)

Our engine uses stochastic iteration framework and parallel ray-bundle tracing ([1], [2], [3]).

4.5.2 Supported platforms

Windows and MAC.

4.5.3 License conditions

No problem. This rendering add-on is an internally developed one.

4.54 How big is the overhead in the data conversion? (Give your native data structure or time/memory estimation for the conversion.)

Finite element based methods need fairly tessellated meshes to avoid light leaks, inaccurate illumination effects etc. It means our engine has to re-mesh the AC triangles, which implicates huge memory requirements and moderate time complexity. Parallel ray-bundle tracing uses only 1 variable per patch, which ensures diffuse radiosity-like memory requirements. Our engine provides some settings to the users for balancing between the quality of the rendered image and the memory requirements. It means in average case the user has to wait for some seconds to convert the AC triangles into the RenderX ones. Our data structure is triangles, and an estimate time complexity for 20K mesh to convert to a 120K mesh is approximately 5 seconds.

4.5.5 What are the missing surface attributes you need in your algorithm?

Refraction index for defining physically correct transmittance properties and since we use area light sources we require emitted radiance power.

4.5.6 What are the missing attributes for the light sources? Do you support physical data (Watt, lumen, candela)?

RGB radiance value (Watts / steradian / m2), but any physical measure is OK, we can correct the easily (it is just a matter of multiplying by a constant value)

4.5.7 What are the missing settings for your algorithm?

Settings for tessellation, discontinuity meshing and shadow types. We plan that the modal dialog of these settings will appear before the starting of the rendering process. The tone mapping settings may be available before and after the rendering.

5. Radiance

5.1 Conversion of data structures

Scene geometry within the rendering programs is modeled using B-rep of three basic surface classes, defined below:

• Polygon: An n-sided planar polygon, with no fewer than three sides. A polygon may be concave or convex as long as it is a well-defined surface (i.e., no two sides may intersect, though they may coincide). Surface orientation is determined by vertex ordering. Vertices read counterclockwise from the front. Holes in polygons are represented using seams. If the vertices are nonplanar, a warning is issued and the average plane is used, which may result in cracks in the rendering of adjacent surfaces.

• Sphere: Defined by a center and a radius. Its surface may point outward or inward.

• Cone: Includes the truncated right cone, the truncated right cylinder, and the ring (a disk with an inner and an outer radius).

Each surface primitive is independent in the sense that there is no sharing of vertices or other geometric information between primitives. Besides the abovementioned local geometric types, there is one distant geometric type:

• Source: A direction and subtended angle indicating a solid angle of light entering the environment, such as light that might come from the sun or the sky.

Figure 5.1 Radiance geometry primitives

In ArchiCAD Radiance would use polygons without remeshing, because the hybrid ray-tracing engine works with the original mesh.

5.2 Attributes of the surfaces

Radiance uses physically based materials, which can be converted from ArchiCAD non-physically based shaders. Radiance uses the following surface attributes:

  • emittance
  • diffuse, directional diffuse and specular reflectance
  • diffuse and specular transmittance
  • refraction index

Figure 5.2: uniform diffuse, directional diffuse and specular part of BRDF

5.2.1 Reflective materials

  • diffuse reflectance
  • specularity
  • isotropic roughness: plastic, metal
  • anisotropic roughness: plastic2, metal2
  • arbitrary distribution: plasfunc, plasdata, metfunc, metdata

5.2.2 Transmissive materials

  • visible transmittance: dielectric, glass
  • diffuse transmittance: trans, transdata, transfunc
  • specular transmittance: trans, trans2
  • arbitrary distribution: BRTDfunc

5.2.3 Emissive materials

  • visible light sources: light, glow, spotlight
  • invisible light sources: illum
  • secondary light sources: mirror, only valid on polygon and disk (ring)
  • light re-direction for glazings: prism, prism2

5.3 Attributes of the lights

Radiance uses polygon, sphere, disc and cylinder light sources. A light is defined simply as a RGB radiance value (Watts / steradian / m2).

Radiance can use secondary light sources, which means they are treated like any other light source, except when viewed directly. It then acts like it is made of a different material, or becomes invisible. Secondary sources are useful when modeling windows or brightly illuminated surfaces.

5.3.1 Some important feature of the light sources

  • normal with 1/D2fall-off: light
  • limited range of effect: glow
  • limited cone of effect: spotlight
  • invisible surfaces for imposter geometry: illum
  • statistical sampling used for optimization
  • can use candlepower distribution data (IESNA)
  • dealing with ambient light:
  • no need to create “fake” lights to make the scene appear realistic
  • method empolyed is “ambient interreflections”

5.4 Important Q&A

5.4.1 What kind of algorithm does your Engine support? Name the background of it (publication, research paper etc.)

The rendering engine uses an octree-based hybrid (deterministic and Monte Carlo) ray-tracing ([4], [5], [6], [7], [8]).

5.4.2 Supported platforms

The original Radiance is available for Unix. Radiance was reimplemented for Microsoft DOS during ADELINE project. Desktop Radiance is an integrated AutoCAD solution, which based on the original Radiance library. Desktop Radiance is available on Windows.

5.4.3 License conditions (for UNIX platforms)

“Radiance is a registered copyright of The Regents of the University of California ("The Regents"). The Regents grant to you a nonexclusive, nontransferable license ("License") to use Radiance source code without fee. You may not sell or distribute Radiance to others without the prior express written permission of The Regents. You may compile and use this software on any machines to which you have personal access, and may share its use with others who have access to the same machines.

By downloading, using or copying this software, you agree to abide by the intellectual property laws and all other applicable laws of the United States, and by the terms of this License Agreement. Ownership of the software shall remain solely in The Regents. The Regents shall have the right to terminate this License immediately by written notice upon your breach of, or noncompliance with, any of its terms. You shall be liable for any infringement or damages resulting from your failure to abide by the terms of this License Agreement.”

5.4.4 How big is the overhead in the data conversion? (Give your native data structure or time/memory estimation for the conversion.)

Minimal. Radiance uses adaptive source subdivision at direct illumination calculation for subdivide large or long sources.

5.4.5 What are the missing surface attributes you need in your algorithm?

Directional diffuse reflectance and refraction index.

5.4.6 What are the missing attributes for the light sources? Do you support physical data (Watt, lumen, candela)?

RGB radiance value (Watts / steradian / m2).

6. A new material settings dialog proposal

Here we include the old material settings dialog and show examples of the new one. We briefly outline the proposed changes in a text form also.

6.1 Material settings dialog of other 3D programs

We explored the material settings dialog of some 3D programs (Discreet’s 3D Studio MAX 3.0, Lightscape 3.1, Alias|Wavefront’s Maya 3.0 and Abvent’s Artlantis Renderer 4.0). The dialogs can be seen on Figure 4.2 and 4.3.

Figure 6.1 The old material settings dialogs in ArchiCAD

Figure 6.2 Material settings dialog in Lightscape

Figure 6.3 Material settings dialog in 3D Studio MAX (left), in Maya (top right)
and in Artlantis (bottom right)

6.2 The planned material settings dialog

Figure 6.4 New Material Settings dialog

Figure 6.5 New Material Settings dialog

The changes:

-the different rendering engines requires different parameters, which is separated

-the most frequently used common attributes are grouped together

-Live preview is deleted (it may be the default, since computers are so fast nowadays)

-“Type” is changed to “Template”

-the old “color” is now the “diffuse color”

-each type of reflection now has a color value (in the past ambient had not)

-3D window is considered as another rendering engine, which require hatches

-the change of the colors is now can be done with another color simultaneously (see the two little flip-flops after the color boxes)

-the sidebar of the colors now change the Value of the color (in HSV) run-time in color box

-the old “transparency and emission attenuations” are not common parameters any more, but AC Rendering Engine specific[1]

-the common is the diffuse texture (old alpha channel texture is in AC Rendering tabpage, other textures can be defined by rendering add-ons), the “texture” is modified to “diffuse texture”

-the texture buttons are beautified and the labels are more clear now

Index

[1]L. Neumann: Monte Carlo radiosity.

Computing, 55: 23-42, 1995.

[2]L. Szirmay-Kalos: Stochastic iteration for non-diffuse global illumination.

Computer Graphics Forum (Eurographics’99), 18(3):233–244, 1999.

[3]L. Szirmay-Kalos, W. Purgathofer:

Global ray-bundle tracing with hardware acceleration.

Rendering Workshop '98, 1998

[4]G. Ward: The Radiance Lighting Simulation And Rendering System.

Computer Graphics, 1994.

[5]G. Ward, R.A. Shakespeare:

Rendering with Radiance: the Art and Science of Lighting Visualization.

Morgan Kaufmann Publishers, San Francisco, 1998.

[6]G. Ward: Measuring and Modeling Anisotropic Reflection.

Computer Graphics, 26(2), 1992.

[7]G. Ward, P. Heckbert: Irradiance Gradients.

Rendering Workshop '92, 1992.

[8]G. Ward: Adaptive Shadow Testing for Ray Tracing.

Rendering Workshop '91, 1991.

1

[1] Bug in AC Rendering Dialog: it needs the “old” texture field (where alpha channel can be used as transparency or bump-mapping)