Godot 3.0 Released

After more than 18 months of development, Godot 3.0 is here!

After more than 18 months of development, Godot 3.0 is here! The latest version introduces a brand new rendering engine with PBR workflow for 3D, an improved assets pipeline, GDNative to load native code as plugins, C# 7.0 support, Bullet as the 3D physics engine, and many other features.

Here is an overview from the developers: 

NEW PHYSICALLY BASED 3D RENDERER

Examples of 3D scenes with PBR

Godot 3.0 comes with a brand new renderer. For many years, when you read about Godot on the Internet, usual comments were along the lines of:

“The 2D engine is very good, but 3D is still basic, lacking and nowhere comparable to XXX 3D or YYY Engine”.

Fortunately, this is no more. The new 3D engine is outstanding, with many features out-of-the-box that are still not common in other mainstream engines. Added to this, Godot’s ease of use allows reaching the best quality with much less effort.

The new 3D renderer is state-of-the-art, with features rarely see in game engines today, such as:

FULL PRINCIPLED BSDF

Godot is the first engine to offer the full range of Disney’s principled BSDF for physically-based rendering. Due to its innovative rendering architecture, it can offer very complex materials at no extra cost.

This means that besides the typical Albedo, Metalness, Ambient Occlusion and Roughness features, Godot offers Rim, Anisotropy, Subsurface Scattering, Clearcoat, Refraction and Transmission. They are all ready to use out-of-the-box and tightly integrated to the render pipeline.

Overview of state-of-the-art BSDF material parameters in Godot

Other engines force you to either choose only one of those parameters at a time, apply them in a forward pass (thus leaving them out of post-processing, global illumination or making them inefficient with a high numbers of lights), or pay for them. In Godot they are built-in, work without hacks, efficiently and can be combined together.

GLOBAL ILLUMINATION (GI)

Besides materials, lighting is very important. Godot 3.0 provides two alternative workflows for global illumination.

3D scene with global illumination

The first one is GI Probes, which act like reflection probes (they affect an area and can be blended) but provide global illumination instead. GI Probes are real-time, which means that light changes take effect immediately and objects passing by the probe will also get GI from it.

Both indirect light and voxel reflections are provided by this technique. It’s also very easy to use. Just set up the probe bounds and do a fast pre-bake of static objects. No lightmaps or anything of the sort are required, providing a very quick and efficient workflow.

3D scene with GI Probes

The only downside is that it requires medium to high-end hardware to work. Even on the lowest quality settings, rendering at an halved resolution may be required on low-end systems.

For low-end systems or mobile devices, we provide a more classical lightmapping workflow. Still, this workflow is easy and efficient as 3D objects get a second set of UVs generated on import, and baking works with instantiated meshes, scenes and even GridMaps.

Godot also uses a light octree system together with lightmaps, which allows dynamic objects to get light from the scene without having to resort to manually-placed light probes, which are a real hassle to set up.

3D scene with lightmapping

MID- AND POST-PROCESSING

Together with the new rendering capabilities, a new set of mid- and post-processing options are supported.

There is a new tonemapper, with support for HDR, multiple standard curves and auto exposure:

Auto exposure as a post-process effect

The most standard effects such as screen-space reflections, fog, depth of field, etc. are supported now.

Depth of field as a post-process effect

There is also a powerful SSAO implementation, which has many useful settings like light affect (how much direct light is affected), or ignoring objects with an ambient occlusion map.

SSAO as a post-process effect

MATERIALS AND SHADERS

Unfortunately, the visual material editor from Godot 2.1 was removed in the compatibility breakage, but it will come back in 3.1. Still, Godot 3.0 makes up for it by providing an extremely powerful default material (which supports detail textures, triplanar mapping and other nice features) and an extremely easy-to-use shader language.

Example of spatial shader code

In other engines, you have to provide many shader variants, mix HLSL with a metalanguage, error reporting is terrible and writing shaders is difficult in general. In Godot 3.0, writing shaders is very easy! It uses a custom language that supports most of the GLSL specification. It parses your code and automatically understands what you are trying to do (such as writing to alpha for transparency, reading from screen, etc.) and it generates internal shader variants for all rendering methods automatically and transparently (forward, clustered, vertex-lit, depth-pass, etc.).

All this within a convenient editor supporting full auto-completion!

GPU PARTICLES

Particle systems in Godot (both 2D and 3D) are processed in the GPU. This allows for millions of particles per frame and really cool effects.

Editor screenshot with 100k particles

As particles are processed on the GPU, it is also possible to create particle shaders for custom behaviors. Even converting regular particles to shaders for further tweaking is possible:

Example of particle shader code

The Godot Team 

You can find more details on the newest version of the engine here

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more