Vulkan Game Engine Development – Improving the Frames with a Frame Graph



Duck! Thanks for watching!

Credits

Resource:
Mastering Graphics Programming with vulkan book – https://www.oreilly.com/library/view/mastering-graphics-programming/9781803244792/
An amazing breakdown of Detroit did it’s rendering – https://mamoniem.com/behind-the-pretty-frames-detroit-become-human/
Cloth physics – https://graphics.stanford.edu/courses/cs468-02-winter/Papers/Rigidcloth.pdf

Models:
Warehouse Model – https://sketchfab.com/3d-models/abandoned-warehouse-interior-scene-1d5285f2e0fd4211a27c8042496d5959
Church Model – https://sketchfab.com/3d-models/old-church-modeling-interior-scene-eb6cf543aa7d45e3acee49887ae3135c
All other models from – https://github.com/KhronosGroup/glTF-Sample-Models

Music:
Jeremy Blake – Powerup! ♫ NO COPYRIGHT 8-bit Music – https://www.youtube.com/watch?v=l7SwiFWOQqM
Kubbi – Up In My Jam ♫ NO COPYRIGHT 8-bit Music – https://www.youtube.com/watch?v=cLX0cyh6_Ro
Keygen Music By FFF – https://www.youtube.com/watch?v=BwWB4TbGUCo
Joshua McLean – Mountain Trials ♫ NO COPYRIGHT 8-bit Music – https://www.youtube.com/watch?v=L_OYo2RS8iU
Anthrox Intro – Amiga Cracktro from “Shadow Of The Beast 3 / III” release – https://www.youtube.com/watch?v=5nzsTKmONK0
Celeste Original Soundtrack – 03 – Resurrections – https://www.youtube.com/watch?v=1rwAvUvvQzQ
Jeremy Blake – Powerup! ♫ NO COPYRIGHT 8-bit Music – https://www.youtube.com/watch?v=l7SwiFWOQqM

Socials:
Discord link – https://discord.gg/VzWMpZ4HBJ
Twitter – https://x.com/AFloatingPoint

source

Related posts

Atomfall | REVIEW | Das Stalker für alle, denen Stalker zu anstrengend ist

Phantom Blade Zero – Year of the Snake Gameplay Trailer | PS5 Games

Every Pixel Art Game Has This Problem…

11 comments

@EscPointDev February 7, 2025 - 12:11 pm
CORRECTION: I say scene graph instead of frame graph. A scene graph is when you subdivide space in your game with something like a octtree or a sphere hierarchy. A frame graph is what I'm talking about here not a scene graph. Sorry about the mess up, there no excuse I will extra careful with my terms next time.
@Sacred-Lotus February 7, 2025 - 12:11 pm
Use fence wisely. You can 3x—12x the framerate of Vulkan renderer.
@921Ether February 7, 2025 - 12:11 pm
forward+ render masterrace
@dosomethingintrersting3697 February 7, 2025 - 12:11 pm
Great video, wait for your next video.😃
@ArktikusYoutube February 7, 2025 - 12:11 pm
Looks very nice!
I looked one time into Vulkan, but personally don't see the benefit in using it over OpenGL.
It has a lot of potential for good performance, but if you don't implement things right, the performance can actually be worse than OpenGL.
Besides that, you need like 10 times the code for the same thing compared to OpenGL which just leads to more errors and learning Vulkan is really difficult, but also teaches a lot, sadly with a full-time job spending that much time isn't viable. At least for me.

But great video and good luck! :D
@anon_y_mousse February 7, 2025 - 12:11 pm
That's pretty interesting, but if you want realism, shining a flashlight on a singular spot does actually cause the colors of the spot to be washed out. It's kind of weird given that the black behind the columns is definitely not realistic. The only question I have is completely unimportant, but why use JSON?
@uzlezz_3587 February 7, 2025 - 12:11 pm
You said that deferred rendering is better than forward because deferred doesn't suffer from overdraw with lighting calculations. But you already have a depth pre-pass, which also works for forward rendering. By doing a depth pre-pass in deferred rendering, not only might you suffer from a lot of bandwidth usage for GBuffer creation, but you also have to render your scene twice. So, you should definitely profile whether avoiding overdraw with a lot of texture sampling is worth the tradeoff of doubling the rasterization effort.

If you’ve got the time and interest, check out Clustered Forward Rendering. It’s a modern take on forward rendering (most notably used in DOOM 2016/Eternal). The idea is, instead of applying every single light to every single object, you divide the camera frustum into “froxels” (essentially mini-frustums within your big frustum) in a 3D grid. You calculate which lights affect which cells, and when applying lighting, you determine which cell your pixel belongs to and iterate only over the lights affecting that cell.

This method works wonders not only for forward but also for deferred rendering (Clustered Deferred). But using it with forward gives you all the benefits of forward rendering, like proper MSAA and a single pipeline for all your geometry.
@alicethetransdalek7333 February 7, 2025 - 12:11 pm
im still kinda new to graphics programming but im pretty confused as to what purpose does the depth prepass serve in the rendering? from what i understand in forward rendering it'd avoid fragment shader invocations for any pixel that would get hidden by another, but doesn't the geometry pass in deferred rendering already do that without having to do twice the number of call draws?
@ToyotaKiller4000 February 7, 2025 - 12:11 pm
hi can i sign up for your work so in the future i wil be a beta tester?
@CzaryTheGamer2PL February 7, 2025 - 12:11 pm
Great stuff, lookin impressive. Have you been thinking of adding support for mesh shaders, or perhaps utilizing raytracing cores for lighting/reflection calculations?
@dexterman6361 February 7, 2025 - 12:11 pm
Is the code up on github?

Comments are closed.

Add Comment