Godot 3 Renderer Design Explained
Events
Subscribe:  iCal  |  Google Calendar
San Antonio US   18, Jan — 21, Jan
London GB   21, Jan — 23, Jan
Taipei TW   24, Jan — 29, Jan
Zürich CH   31, Jan — 4, Feb
Leamington Spa GB   31, Jan — 3, Feb
Latest comments
by Frank
6 hours ago

Is there any way i can tweak the colors dynamically through another blueprint? I tried with the "get all actors of class" function and setting the colors of the clouds by a timeline, everything else connected to the timeline does its thing but the volumetric clouds wouldn't change. Are the properties somehow fix?

by Ronnie Ochero
9 hours ago

Hi, what version of blender does this work with?

by anonymous
14 hours ago

Yeah this is good but it doenst capture the 2d look it still looks 3d. How about copying the movement of 2d animation because this looks way too smooth. 1 example is using the classic by twos which most studios do or also use 24 fps to really capture the 2d feel

Godot 3 Renderer Design Explained
25 September, 2017
News

Godot is all about a different approach to rendering, trying to accommodate better to most users’ needs. The team behind the tool shared a document that explains the overall design of Godot. This might be a starting point for developers who would like to help the team write rendering code. 

You can also ask the team about anything if you need something to be explained further.

Here is a small piece of the document:

The default VisualServer implementation in Godot is VisualServerRaster, which is a Visual Server designed for rastering. This implementation handles spatial indexing of objects and, every frame, building a render list of objects drawn. It also handles the pairing of objects (lights to geometry, GI to geometry and lights, etc).

Rastering is done via another opaque interface, Rasterizer, which in Godot 3.0, was further optimized to take batches of objects instead of having to call one by one to render (which hurts performance).

RASTERIZER ABSTRACTION

Godot’s rasterizer implementation is also considerably high level. We know it would probably be easier to just abstract a low level drawing API like OpenGL or Direct3D (or use open APIs, such as BGFX). However, this makes our work more complex in the long run.

The reason for this is that, when supporting multiple backends, different techniques may also need to be supported. For example:

  • On GLES3+ we can use UBOs to optimize shader parameters. On GLES2, regular uniforms are used.
  • On GLES3+ we can use VAOs to optimize array configuration. On GLES2 regular glVertexAttribPointer must be used.
  • On GLES3, we can use cool rendering techniques like Clustered or Single Pass Forward. On GLES2, for peformance, only multipass forward makes much sense.
  • On GLES3+ we can use transform feedback for particles or blend shapes, while on GLES2 everything needs to be done using CPU.
  • And the list goes on.

Godot

Make sure to read the full guide here.

Source: Godot

Leave a Reply

Be the First to Comment!

avatar
wpDiscuz