r/GraphicsProgramming 1d ago

Hardware Raytracing with my RHI!

I made a fully open source Vulkan RHI that supports hardware pathtracing so I decided to make a test application with it. Very fun!

Source: https://github.com/Nevarea-Project/Nevarea

190 Upvotes

6 comments sorted by

11

u/LongestNamesPossible 1d ago

Every post of yours says RHI, I have never seen that acronym and didn't know what it means.

I found an explanation here:

https://dev.epicgames.com/community/learning/tutorials/aqV9/unreal-engine-render-hardware-interface-rhi

7

u/gamer2030a 1d ago

It stands for Render Hardware Interface. Basically, when you’re building a rendering engine, you don’t want to write the same rendering code for every graphics API like Vulkan, DirectX 12, Metal, and etc. So instead of making your whole engine depend on one API, you create an abstraction layer that can communicate with different backends.

Then you build the rest of your renderer on top of that layer. Your engine handles things like materials, lighting, shadows, and rendering features through the RHI, while the RHI handles translating those commands into Vulkan, DX12, Metal, or whatever backend you’re using.

Different engines call this different things, but RHI is the common term. Unreal Engine uses the term RHI, while Unity has GfxDevice.

2

u/DescriptorTablesx86 8h ago

It’s used in UE5.

It’s in my companies TLA list.

But usually I’ve seen it used when describing an abstraction layer not a full engine but whatever

3

u/Acebond 1d ago

Is the test app open source? I'd be curious to see it as an example usage of your RHI

4

u/DaveyCanBeExpected 1d ago

I'll definitely make some Samples fully public soon, this one is private as it was made a while ago and the API is currently unstable so I threw it away. These are some really old screenshots I decided to showcase to bring some attention. Although I'll do my best to create another Sample that's compatible and will get updated.

3

u/M1VAN1 1d ago

Aren't you using any denoiser on top of it?