EwanBurnett / Vulkan-Renderer

A 3D Renderer exploring the Vulkan API.
https://ewanburnett.github.io/Vulkan-Renderer/
MIT License
0 stars 0 forks source link

VKR Demo 02 - Mesh Rendering #6

Open EwanBurnett opened 2 months ago

EwanBurnett commented 2 months ago

Create a Sample Project Implementing:

Render the original Sponza Scene (image via https://ryanschultz.com/2017/09/10/scene-of-the-day-sponza/comment-page-1/)

Image

EwanBurnett commented 2 months ago

VKR-Whiteboxing drawio

Application Whiteboxing

Settings Menu

VKR-Whiteboxing-Settings-Menu drawio

Import Dialogue

Performance Metrics

VKR-Whiteboxing-Metrics drawio

Output Log

Backup

VKR-Whiteboxing.zip

EwanBurnett commented 2 months ago

Renderer Architecture

Render Layers

Image

// Layer Rendering Pseudocode
Clear(primaryCommandBuffer); 

for(layer in layers) {
    layer->RecordCommands(secondaryCommandBuffers[layer]); //This can be done in parallel!
}

await RenderTasksComplete(); 

ExecuteSecondaryCommands(primaryCommandBuffer, secondaryCommandBuffers); //Play back the secondary commands 

Present(primaryComandBuffer); 

SubmitCommands(graphicsQueue, primaryCommandBuffer);