Forums Technical subjects R&D Technology previews Launching the development of a new real-time 3D rendering engine based on Vulkan

1 2

Author Posts

Lionel
Keymaster

Lumiscaphe launches the development of a new real-time 3D rendering engine based on Vulkan with the objective of a very noticeable improvement in the performance and quality of the images produced.

The features include color calibration, high dynamic range post-processing filters, support for Physically Based Rendering (PBR) shaders, Realtime Ray tracing (RTX) integration, and the redesign of advanced illumination and rendering techniques.

The engine will support Windows, Linux, Mac OS, iOS and Android platforms. It will deliver a Frame per Second (FPS) rate much higher than the engine currently used by Patchwork 3D.

You can subscribe to this topic to follow the development step by step: we’ll post images of each progress of the project below.

Example of the current real-time rendering in Patchwork 3D based on OpenGL:



Lionel
Keymaster

Let’s go! We start with a simple rendering of the normals in our new Vulkan render engine. It is necessary to start there!



Lionel
Keymaster

A new step: the support of illumination by lightmaps in our new Vulkan render engine.



Lionel
Keymaster

One more step in the new Vulkan render engine: support for backplates in the background and recall of camera bookmarks.



Lionel
Keymaster

A new step in the #Vulkan render engine: basic support for colorimetry and modulation of ambient lighting by the HDR environment.

See how the object is tinted!

 



Lionel
Keymaster

A new step in the Vulkan render engine, the implementation of special render buffers  to connect interactive tools:
1- the ‘Object’ buffer for selection of surfaces (smart picking): each pixel color maps to one surface,
2- the ‘Position’ buffer for positioning of the camera’s point of interest: each pixel gives the coordinates of the first surface at this location.

  • This reply was modified 1 year, 9 months ago by Lionel.


Lionel
Keymaster

In this next step, we have implemented a graphical interface to monitor rendering performance (FPS) in the Vulkan renderer. We need to measure and track all metrics as soon as possible to continue developing highly efficient rendering capabilities.

Not bad!



Lionel
Keymaster

We chose Vulkan for our new rendering engine for its portability as well as its performance. We wanted to test it on Android as soon as possible.

After a little tweaking and the development of an interface between our test lab and the system, the rendering works fine!

Here are the first tests with the drill, and even a Fiat 500 on a Pixel 3 !

And then a group photo with a smartphone and a tablet on Android, and a Windows PC!

Photo of Vulkan test lab on a smartphone and a tablet on Android, and a Windows PC

  • This reply was modified 1 year, 11 months ago by Lionel. Reason: needs video in lansdscape format for Youtube
  • This reply was modified 1 year, 11 months ago by Lionel. Reason: added picture
  • This reply was modified 1 year, 9 months ago by Lionel.


Lionel
Keymaster

The previous step worked pretty well.

Really well? Compared to Windows PCs, or other Android smartphones? And compared to our current OpenGL engine?
YES, really well.

It was time to do a performance comparison of the #Vulkan engine between these supported platforms and the OpenGL renderer.

Bench Vulkan rendering performance

These numbers represent the current state for lightmaps mode rendering only, we still have some work to do to compute a photorealistic rendering.

To be continued!



Lionel
Keymaster

Hello everyone,

We are very pleased to present the 10th episode of our series about the development of our Vulkan renderer. In this episode, realism is finally here! We have been working on the implementation of different types of materials.

In this video you can see a scene where all these material types are applied to a Fiat 500. The added material types are:

  • the environment material for the background,
  • the matte material for the shadows,
  • the standard material for plastics, leathers, fabrics, etc.
  • the multi-layer material for complex materials such as flakes car paints,
  • the sticker material,
  •  the mirror material for mirrors.

These types of materials could be transposed relatively easily from our OpenGL engine thanks to our experience in rendering. This obviously makes a qualitative leap in the rendering of our Vulkan engine.

We hope you were as excited about this video as we were when we saw the first images. Feel free to share your feedback and questions in the comments below.

Thanks for watching!


1 2

  • You must be logged in to reply to this topic.