Lighting and Rendering / Blender
This page contains the information about lighting, rendering and background properties which can be used with Verge3D for Blender.
- Environment Lighting
- Light Probes
- Global Rendering Properties
- Outline Rendering
- Per-Object Rendering Properties
Verge3D is designed to represent Blender's EEVEE renderer as closely as possible. It supports physically-based shading, lights, shadows and image-based lighting (IBL).
Environment lighting is a very important component of Verge3D graphics pipeline. You can illuminate your entire scene with just an environment map alone, without using any light objects. See the Scooter demo as an example of this approach.
The default cube template provides an HDR texture for image-based lighting. You can replace this texture with your own file, or setup environment lighting from scratch. Here is the basic World nodes setup which uses the same texture for both environment lighting and background:
When using HDR textures, make sure you set the Color Space setting to Linear.
In some cases, using just image-based lighting to illuminate your scene is not enough. If you'd like to simulate some additional light source, need dynamic shadows, or if you need to move your lights (as with car lights), you may use direct light sources.
Verge3D supports the following light types:
- Point Lights — Color and Power properties are supported in Verge3D.
- Sun Lights — Color and Strength properties are supported in Verge3D.
- Spot Lights — Color, Power, Spot Shape: Size and Blend properties are supported in Verge3D.
- Area Lights — Color, Power, as well Size for Square-shaped and Size X/Size Y for Rectangular-shaped lights are supported in Verge3D. Disk and Ellipse shapes are not supported.
In addition, you can assign Shadow properties on your point, sun, or spot lights. See the corresponding section for more info.
Light Probes are objects intended for adding indirect lighting locally by generating a local reflection cubemap. Verge3D currently supports only Reflection Cubemap light probes. This type of light probe objects add specular indirect ligthing to a scene.
The following properties are supported:
general probe settings:
- type of the influence volume: Sphere or Box. Only objects located inside this volume are affected by the probe's lighting.
- controls the size of the influence volume. You can also change object scaling and make the shape of the influence volume non-uniform.
- the intensity of the indirect lighting. Any value different from 1.0 is not physically correct.
- Clipping Start
- near clip distance. Objects located closer than this value won't be rendered into the reflection cubemap.
- Clipping End
- far clip distance. Objects located further than this value won't be rendered into the reflection cubemap.
object visibility settings:
- Visibility Collection
- limit objects that should appear on the reflection cubemap to this collection. If not specified all scene objects are used.
- Invert Visibility Collection
- invert the selection of objects visible to this probe if Visibility Collection is specified.
- Custom Parallax
enable custom settings for the parallax correction. This group of settings
defines a parallax volume, which is used to project the lighting
captured by the probe. If Custom Parallax not enabled the parallax
effect is calculated based on Type and Radius/Size of the influence
- type of the parallax volume: Sphere or Box.
- the size of the parallax volume.
In order to see in Blender's viewport the results of using
Reflection Cubemap objects you need to bake their cubemaps first via the
Bake Cubemap Only or Bake Indirect Lighting buttons both located in
the Indirect Lighting panel, which is in the Render Properties tab.
Also the Cubemap Size property controls the size of the cubemap texture used by Reflection Cubemap objects.
The IBL Environment Mode setting also affects cubemaps generated by Reflection Cubemap objects.
Due to implementation specifics there are differences of how Reflection Cubemap light probes behave in Blender and in Verge3D:
- Blender supports multiple light probes per object while Verge3D only a single one. That's why objects in Verge3D use a single cubemap either from a Reflection Cubemap object or from the world environment. Falloff is not supported.
- Blender doesn't use Backface Culling for meshes by default while Verge3D does. Hence in Blender objects placed inside the probe's influence volume can appear on the reflection cubemap as black spots due to back faces being rendered if the Clipping Start/Clipping End settings are not properly adjusted. This doesn't happen in Verge3D by default.
- When rendering objects into a light probe's cubemap (baking) Blender considers only the diffuse component of an object's material, while Verge3D renders them no different from how they are rendered on the main scene. That's why for example fully metallic objects are rendered black in Blender, but in Verge3D they still reflect the world environment.
- For the Visibility Collection property to work in Blender it's required that the specified collection is also linked to the scene. It's not needed in Verge3D and it's enough to just assign an object to a collection.
By default Blender and Verge3D render the same image for background and environment lighting. To render them separate, use the advanced World nodes setup based on Is Camera Ray output of the Light Path node. For example, to set the background color to solid grey and continue using the HDR map for environment lighting:
Global Rendering Properties
Global rendering properties accessible on the Blender's Render Properties panel.
- Cubemap Size
texture size to use for environment lighting:
- 64, 128
- do not use, 256 is the minimum value supported by Verge3D.
- optimum quality with low memory consumption (recommended).
- better quality with moderate memory consumption and reduced performance. Use it to render high quality reflections e.g for rendering jewelry.
- best quality with high memory consumption and low performance (generally not recommended).
- 2048, 4096
- do not use, 1024 is the maximum value supported in Verge3D.
- View Transform
- additional color correction applied to Verge3D renderings:
- no additional color correction applied. Switch to this method if you don't need color correction as it works slightly faster than Filmic.
- Blender default method.
- Filmic Log, Raw, False Color
- unsupported, Verge3D will use Standard instead.
- Enable Shadows and Shadow Map Side
- shadow properties, read more about these here.
select what anti-aliasing algorithm to use for the scene:
- use system default method.
- MSAA 4x
- prefer multisample anti-aliasing with 4x samples if the target hardware supports it.
- MSAA 8x
- prefer multisample anti-aliasing with 8x samples if the target hardware supports it.
- MSAA 16x
- prefer multisample anti-aliasing with 16x samples if the target hardware supports it.
- force FXAA.
- disable anti-aliasing.
- Use HDR Rendering
- enable high-dynamic-range rendering.
- IBL Environment Mode
- PMREM (slow)
- high quality (default value).
- Light Probe + Cubemap (medium)
- reduced quality of image-based specular reflections, better performance.
- Light Probe (fast)
- disabled image-based specular reflections, highest performance.
- Outlining Effect
- see below.
Outline rendering (aka silhouette edge rendering) is a common non-photorealistic rendering (NPR) technique that can significantly enhance the visual perception of your scene. This effect can be used for various applications such as e-learning, games, architecture visualization, and technical drawing.
To use object outlining (and optional glowing) in your Verge3D application, first enable the effect on the Blender's Render Properties panel, then use the outline puzzle to apply it to your object(s).
The outline rendering does not work inside AR/VR sessions. Use other methods to highlight your objects, such as animation or changing material's color.
You can tweak outlining using the following properties:
Enabled — enable/disable the effect.
Edge Strength — outlining strength factor.
Edge Glow — intensity of additional glowing (rendered beyond the main outline edge).
Edge Thickness — outline edge thickness factor.
Pulse Period — pulse period in seconds. Specify to make the effect animated.
Visible Edge Color — visible edge color.
Hidden Edge Color — color of the outline edge being rendered behind any other scene objects.
Render Hidden Edge — enable/disable rendering of the outline edge behind other scene objects.
Though it's possible to render glowing objects, in the most cases the outline rendering is used to improve visual clarity of your scene. If you need glowing from lamps or another bright objects, consider using the bloom post-processing instead.
Per-Object Rendering Properties
Verge3D supports the following additional rendering properties for your geometry objects:
Rendering Order — modifies the rendering order for a particular object. The smaller the index, the earlier the object will be rendered. In most cases, you need to tweak this value when using Blend transparency to eliminate transparency artifacts.
Frustum Culling — enables/disables frustum culling optimization for the object. Uncheck this option if you have some skinned object which can move beyond the screen space to prevent it from being culled.
Receive Shadows — render or not shadows on the given object. See here for more info.
Feel free to ask on the forums!