XaiJu
The Cherno
The Cherno

patreon


[EXCLUSIVE VIDEO] Hazel's New Renderer (Part 1)

Hi all, welcome to the first new exclusive video! If you're out of the loop I put up a video here on Patreon a few days ago announcing this new type of exclusive content for $5+ Patrons - basically I'll be putting out technical deep-dives on various Hazel topics every week or so!

In this first one we're taking a look at Hazel's new, much faster renderer. There's a lot to talk about so this will be a multi-part little series.

Would love some feedback on this new format because these videos are 100% for you! If you have questions on anything I mention in the video or suggestions for topics to look into, just leave a comment below - I'll go through all of your comments in the next video! ❤️

Comments

I liked the video, but I would prefer more Vulkan focused talks since we are talking about the Renderer, and how/why did you come up with the solutions :) for example I'm very interested in the DescriptorSetManager and how are you binding them inside the command buffers for rendering. Also I'm very interested on how you compile shaders now, and how can you include shaders in other shaders. Thank you!

Tesla Coil

Thank you for the content and the game engine series it has been amazing. I was actually currently implementing a uniform buffer system. Since I am not that familiar with game engine programming I am currently basing my engine on OpenGL, although I am first compiling to SPIR-V and then to OpenGL, then reflecting on the binary. I agree that sets are very useful but I also feel like you can get away with bindings only. In my shaders I mainly seperate the layouts into 2 types, Engine types and Shader types (store specific material information like maps) . I then have 1 uniform buffer across the whole engine for 1 Engine Type and I have 1 buffer per shader type per shader. When I draw lets say a frame you need to bind the proper engine type of buffer to the proper binding only once and then for each material bind its types also once. So if I have 1000 meshes I will set the engine buffer ones and then bind and send data to the material 1000 times if the data is different which it can be, for example 1000 normal maps. I haven't implemented it yet but I feel like you can simulate the sets like that. Grouping data into dufferent layouts and then updating the layouts either per material type, shader type, or only ones for the ones that are used per frame (or lets say per renderpass since I know you use these, I haven't gotten around to implementing it yet). Once again very nice video!!

Ivan Yanakiev


More Creators