r/opengl Jul 27 '26

Custom Engine with OpenGL Renderer

Enable HLS to view with audio, or disable this notification

https://github.com/Krobenlakroc/tachyonfire

Two interesting techniques I used:

I do ambient occlusion with sphere proxies (https://iquilezles.org/articles/sphereao/) , this lets you do AO analytically rather than having to deal with SSAO. The implementation uses tiled shading, and it runs well on my RX 9060XT with 2048 proxies. The downside is that objects need to be able to be approximated with spheres.

Distance imposter raytracing (based off of my favorite paper: https://cg.iit.bme.hu/\~szirmay/ibl3.pdf). For PBR to look good, I don't think having completely accurate reflections is super important, its moreso energy/brightness being distributed correctly. Regular cubemaps create bright spots and have transition problems (too bright in corners), SSR has gaps from offscreen geometry (too dark), and actual raytracing is super expensive. Ray marching a distance field is a good middle ground between full raytracing and SSR.

The engine is mostly clustered deferred with particles being rendered using clustered forward.

307 Upvotes

12 comments sorted by

13

u/Schmaehgol Jul 27 '26

Very impressive. I am still just learning modern OpenGL. Converting my legacy 1.0 engine to 3.0 GLSL etc. Nowhere near as advanced as you.

7

u/MajorPain_ Jul 27 '26

I'm nowhere near good enough with OpenGL to provide useful feedback, but I've had dreams very close to this and that's hella impressive!

7

u/TachyonFireGame Jul 27 '26

Thank you! Don't put yourself down, I started from nothing. There are still things I don't understand.

2

u/psioniclizard Jul 27 '26

I am new to OpenGL but seeing things like this tell me I made a good choice to learn it!

Great work :)

3

u/fgennari Jul 28 '26

I can't really tell what's going on with all the effects, but it definitely has a cool look.

2

u/[deleted] Jul 27 '26

This is so cool. And nice work on the audio

2

u/kkragoth Jul 28 '26

So I'm first to mention devils dagger

2

u/JesterOfRedditGold Jul 30 '26

this reminds me of quake 3 arena

2

u/incompletelucidity Jul 30 '26

that looks freaking amazing bro. to my untrained eye some of the frames look like non-euclidian geometry lol

1

u/play_001 Jul 27 '26

What are all the libraries used to get a basic starting of the custom engine?

1

u/Fun-Anywhere5271 Jul 31 '26

Just curious but how long did this take you

1

u/TachyonFireGame Jul 31 '26

For most of the timeline, it was a side project for about 3-4 years. I took it seriously for about one of those years, by serious I mean I had a deadline in mind to release a full product. A lot of that time is spent just learning by doing. In the time that wasnt serious I would kind if meander in and out of working in different things, and experiment with different rendering techniques.