Goshido / android-vulkan

This repository is a project for learning Vulkan API, constraint based 3D physics, Lua scripting, spatial sound rendering, HTML+CSS UI rendering.
37 stars 4 forks source link

Physically based rendering and GBuffer #5

Closed Goshido closed 2 years ago

Goshido commented 4 years ago

It's needed to implement Physically based rendering (PBR) for example Cook-Torrance lighting model. Implementation must use GBuffer approach to test real impact which is caused by deferred shading technique on tiled rendering GPU.

Goshido commented 4 years ago

Scene converter has been implemented.

Prototype preview video.

As you can see there are a lot work to do. For example:

Goshido commented 4 years ago

Material mask support. Video link is here.

Goshido commented 4 years ago

It was discovered strange behavior with uniform buffer memory layout. The issue was created on the ARM support page. Direct link is here.

Goshido commented 4 years ago

The official response has been received from ARM support. The issue described above is a driver bug which is fixed in latest driver revisions. So it was decided to implement workaround.

For more information please refer to link.

Goshido commented 4 years ago

Awesome results after changing all textures to the ASTC format inside KTXv1 media container:

image

Goshido commented 4 years ago

Proprietary .mesh2 format has been supported. The main advantages:

Goshido commented 4 years ago

Frustum test has been integrated.

Goshido commented 3 years ago

Features:

Video demo is here.

The performance is quite promising. Redmi Note 8 Pro produces 65 FPS in average.

Goshido commented 2 years ago

The original goals have been achieved. The task is too abstract now so it will be closed.