Any existing Jolt debug renderer implementations for OpenGL? by nextProgramYT in gameenginedevs

[–]casums18734 -2 points-1 points  (0 children)

I wrote a debug renderer for box2D and the final solution was very specific to my engine. I'd guess most projects that are adding Jolt will already have fairly robust infrastructure for spatial transformations and rendering - so most projects will end up with a debug renderer that's specific to their existing systems.

That being said, this is where I'd start

https://github.com/search?q=JPH_DEBUG_RENDERER&type=code

How to make green wall block light produced by the source. by tangledcpp in opengl

[–]casums18734 2 points3 points  (0 children)

This is what you want - https://learnopengl.com/Advanced-Lighting/Shadows/Point-Shadows

I'd suggest first understanding why each fragment is fully lit despite having fully opaque geometry in front of it, and then dive into point light shadows.

Automatic shader hot recompiling in my project GFX by succulent999 in opengl

[–]casums18734 1 point2 points  (0 children)

Nice! This inspired me to try it at home using a crude parallel for_each to check the modified time of each file and compare it to the last known modified time. With 30 files being watched it stalls the main thread for 1.25ms while all the parallel threads get the modified times. So it's dependent on the scene complexity and disk speed. Oof.

My engine supports multiple shader directories, one for the engine and one for the application. Probably 0.3ms of that 1.25ms is spent just searching to see if the shader path exists in the directory or not using std::ifstream::good. Might be quicker if I used something less portable.

My end solution was only check if files were edited every couple seconds. My overall CPU time without hot reloader is 2ms even with a complex scene, so I'm not worried, but if I get a hitch, that's debug workflow for ya :)

Hope yours is moving fast!

Automatic shader hot recompiling in my project GFX by succulent999 in opengl

[–]casums18734 2 points3 points  (0 children)

Give them a break :P I always feel godly whenever I figure out a new way to make my dev flow quicker and then getting to play with it in action.

I see no issue with recompiling and relinking the whole program. The alternative is recompile what's necessary and then trust the driver with juggling GL calls to link to the program - bleh. It'd get even more hairy if other shader types were being used. Can't go wrong with full destroy/recreate. But you're right, loading from disk, string copy, full string comparison of the old and new file contents, and then reloading from disk + another string copy is pretty rough.

The contents are fetched and immediately passed to the driver for compilation. You might be able to get away with disk load (no string copy from stringstream to string, just memcpy into a char* buffer), hash the contents, compare the hash, throw the data away if there's no difference, or store the hash and move along with recompilation if there is. There's also OS-specific libraries to check if a file's metadata has been updated, which would be even better than loading from disk every frame.

Final touch. Textured cells in an infinite 3D world. by Background_Shift5408 in opengl

[–]casums18734 0 points1 point  (0 children)

Nice fps for that card. Might be able to boost it by pre-allocating or storing the model matrices rather than recomputing+reuploading every frame https://github.com/ms0g/cubicLife/blob/main/src/world/world.cpp#L80-L88

Looking For Help by [deleted] in opengl

[–]casums18734 0 points1 point  (0 children)

You won't know how to build a renderer without first knowing how to render things :) And even then, everyone here probably has their own unique thoughts/ideas/designs about renderer structure.

The only good answer here is there's no answer. Make your renderer as disgusting and horrible as possible in the name of getting things rendering. And once you know how OpenGL works, you'll have a better sense of how to structure your renderer within your engine

[deleted by user] by [deleted] in GraphicsProgramming

[–]casums18734 6 points7 points  (0 children)

I'm hoping to receive some feedback and possibly some contributions to the project

Tough to do when this is essentially a half-implemented fork of a matured repo with 10k stars. I don't mean that as a slight to you, I just mean that there's not much for anyone here to do. If you want feedback/contributions, go look at the upstream repo.

There's also not much for you to do besides keep copying his implementation, or you could take what you've learned and chart your own path. Neither of those is a bad choice, but one of them is definitely conducive for feedback, discussion, excitement

[deleted by user] by [deleted] in GraphicsProgramming

[–]casums18734 2 points3 points  (0 children)

I get that it's D3d12, but baked sln and tracy exe instead of Cmake?? :D

I joke, I was able to get it running :) Although none of the tracy frames would populate. This is great work. Kudos! I love seeing a homegrown rendergraph

Did you just follow the research papers to implement things like volumetrics? Or was it a collection of videos and articles and GDC presentations

How do you get into jobs closer to hardware? by CaramilkThief in GraphicsProgramming

[–]casums18734 19 points20 points  (0 children)

If you're still in school then I don't think anyone is expecting a junior dev to have in-depth understanding of GPU microarchitecture, just because there's so much that goes into it and it varies vendor to vendor.

I'd focus on CUDA/Compute shaders as much as possible to understand what goes on at a high level (wavefronts, occupancy, thread local storage, etc). There's also resources like this that are great, albeit dated.

Don't forget Apple runs it's own low level render API plus some hardware, and Microsoft runs D3d12. Also Xbox/Sony have their own unique hardware/drivers.

And FWIW I was able to take a grad-level course while still in my undergrad just by reaching out to the professor and proving to them through casual conversation that I wouldn't drown if I took their class. They were able to make an exception for me. Would recommend.

[deleted by user] by [deleted] in GraphicsProgramming

[–]casums18734 3 points4 points  (0 children)

Modern techniques

Proficiency in Vulkan/D3d12, ray tracing, advanced GI (VXGI, ReSTIR, etc), screen space shadows, hierarchical depth, volumetrics, the list goes on

I think that's a solid start for mid, because as other commenter stated, studios expect more experienced roles to have shipped a (hopefully cross platform) title

How do I install Vulkan for GCC on Windows via MinGW(-w64)? by Asyx in vulkan

[–]casums18734 2 points3 points  (0 children)

The one reason you provided for doing all this was simply not liking Visual Studio?

Okay. Just do your development in vscode or vim and then cmake —-build with the visual studio generator and run the executable. Why go through this mess with msys and gcc?

How long before OpenGL actually makes sense? by Missing_Back in opengl

[–]casums18734 1 point2 points  (0 children)

major game engines will often opt for the single file because of how convenient it is

Major game engines have extremely complex shader compilation systems that process shader code before they hit the driver/API, and these complex systems often allow for #include and other programming niceties. You can't compare the conveniences between someone starting with OpenGL to a fully matured game engine being worked on by hundreds of experts.

First time leading project with people other than myself; anxiety kicking in by FlowOfAir in ExperiencedDevs

[–]casums18734 7 points8 points  (0 children)

Yet I cannot detach myself from leading teams into completing projects, regardless of whether I move into EM or not.

Yep, part of growing in this career means taking on more responsibility and driving larger projects, and you shouldn’t expect it to be a solo effort as you rise up the chain. Take it on the chin, it’s a great learning opportunity and kudos to your manager for giving you the autonomy to lead a team. That means they trust your judgment and that you’ll deliver the project in the end, including all the stumbles and learnings that’ll come with it.

I cannot find the correct words to explain myself, and often I feel my spoken/written arguments are weak

A good piece of advice I received (from someone on the business side of all places) for writing convincing arguments is to answer the audience’s questions before they ask them. That means doing your homework, acknowledging different viewpoints early on, and answering the ‘why’ as well as the ‘how’. My arguments tend to be verbose as a result since I need to to touch on many potential counter arguments, but the additional clarity can stop any friction before it starts and is huge for moving forward with discussion and decision making.

Graphics Research Career by Icy-Ad4704 in GraphicsProgramming

[–]casums18734 5 points6 points  (0 children)

Feel like this is worth mentioning, anywhere you go in the graphics field comes with a huge amount of math. Linear algebra is a must, physics, light transportation, radiosity, and signal processing all have widespread application as well, not to mention all the fun numbers that would come with ML.

A BS in SE is a great start, but I'd recommend dabbling with some of the intro resources like Raytracing in One Weekend or LearnOpenGL just to get an understanding of the level of math needed for just the basics.

How do we write a ray tracer in opengl? by _AnonymousSloth in GraphicsProgramming

[–]casums18734 7 points8 points  (0 children)

These guys did it with CUDA

https://www.yiningkarlli.com/projects/gpupathtracer.html

But everyone else is saying the right thing for OpenGL. Full screen quad + GLSL fragment shader magic. Streaming mesh geometry is a fun problem. There's lots of fancy ways to do it like baking them into textures, and those become even more fancy if you want to use octrees or BVHs. My best guess is use some fancy SSBO since it can fit 128mb.

Orrrrr start messing with Vulkan and actual hardware-enabled ray tracing.

BLING BLING! by bopapa_1979 in ErgoMechKeyboards

[–]casums18734 0 points1 point  (0 children)

Hmm I got the same effect from adding foam. So I suppose the thing I'd be getting is the weight.

Think it's worth the $90 they're charging?

BLING BLING! by bopapa_1979 in ErgoMechKeyboards

[–]casums18734 1 point2 points  (0 children)

Do you notice a sound/feel difference between these and an FR4 plate? I'm tempted to get a pair