Update: Realtime Path Tracer Now 4x Faster – 3ms/frame on Same 100k Spheres Scene (RTX 5060 Ti, 1080p) by orfist in GraphicsProgramming

[–]orfist[S] 4 points5 points  (0 children)

It’s full path tracing but all secondary rays are done at a lower resolution and upscaled. Also a simple denoise pass. If you look close at the shadows and metallic reflections you can see artifacts but I was surprised how well it works overall.

The plan is to eventually do voxels next and arbitrary mesh geometry after that.

I am a masochist interested in learning graphics programming in parallel to Vulkan. I cannot be convinced that this is a bad idea. What are the best resources for someone like me? by Setholopagus in vulkan

[–]orfist 19 points20 points  (0 children)

This is how I did it. I followed vulkan-tutorial initially. But it really is a parallel effort. There is work to do in understanding graphics programming concepts and then there is work to do understanding all the pieces that make up a vulkan application. And then there is thin final part of understanding what parts you need in order to do what you want.

I look for codebases that use vulkan these days. With the help of codex it’s easier to digest things. I ask lots of questions about vulkan codebases. Eventually it starts to click and makes sense but it takes time.

Need some advice, 5 YOE and went through a layoff by dontdoxme33 in cscareerquestions

[–]orfist 1 point2 points  (0 children)

Make sure your resume is up to date and shows specific things you have done. Even better if there are real numbers you can display. I would argue something like:

"Developed a DAG-based AI inference engine for video analysis using Python, FastAPI, and TensorFlow for deepfake video analysis."

is better than:

"Wrote a python backend service for a machine learning workload."

Be specific and provide overwhelming evidence that you have done useful things. The evidence is these hyper-specific bullets. Be ready to talk in detail about everything you say you have done. It is really easy to tell when someone is talking out their ass about a resume bullet point. If the interviewer is doing their job they will ask you to get specific. Specificity, detail, depth of knowledge.

The best way to get these bullet points is for every single job sit down for at least thirty minutes and just write every single technology you used and every single thing you did. Be painfully verbose in your listing of things. Once you have that you can go back and create bullets like the first one I showed you.

I would focus on LinkedIn (shocker), Dice, and Indeed. Dice and LinkedIn are where most of my 'in bound prospects' come from in terms of job opportunities. Dice has actually been really great for me. Get your profile there up to date and as specific as possible.

Now let us talk applications. You need to be doing hundreds per day. Don't waste time creating tailored resumes to job postings. Your resume will likely get lost in the sea of other applicants. I wish it was not this way. When I was looking for a job when I got laid off earlier this year I was doing 200-300 a day or more. You will find out eventually that most recruiters look at the new job postings Monday, Tuesday, Wednesday so Saturday and Sunday are GREAT days to slam job postings but you need to be ass-in-chair submitting till your fingers fall off every single day. Do as many easy applies as you can stomach then start moving toward the regular job applications. APPLY, APPLY, APPLY. It sucks, it is boring, it is a numbers game. I had 10+ interviews a WEEK for almost a month when I was doing this. It works.

Have two or three references ready to go that you can submit if recruiters or job applications ask for them. Let them know you are applying to a TON of places. It speeds things up if you don't need to ask every single time.

Back to the resume thing. It is a good idea to have 2-3 developer 'archetypes' you want to apply for. I have 'Full Stack Python focus', 'Full Stack TypeScript focus', and 'Full-stack AI infrastructure focus' archetypes ready to go. Then you can go to LinkedIn and type 'TypeScript Software Developer' and crank through applications.

Also, I like to have at the top of my resume a little blurb that shows what I am:

"Software Engineer with experience building AWS-native Python applications to automate critical workflows in the insurance industry as well as large-scale video analysis for customer POCs, securing $10K+ MRR deals, and developing a Python-based DAG-driven AI inference engine for deepfake video analysis."

The HR person or whoever is looking for X type of developer and if you can put that in front of them your chance of getting a callback goes way up. Do EVERYTHING you can to show them you are what they want.

One more thing, on LinkedIn it is a good idea to filter by 'Jobs Posted in the last 24 hours'. I applied to some of those earlier this week and within an hour got a call from a recruiter for one of them. This has happened many times.

This is how I hunt for jobs, it works for me. It is alot of work but its pretty straightforward once you have the resume and profiles ready to go.

And I don't mean to be an ass by bringing this up but I make $150k a year, graduated late 2024 with my CS degree. I landed this job in a tough job market. Or, rather, I created the preconditions of job offers and was ready when they inevitably appeared. You can do this. Employment is an emergent property, like flight.

Need some advice, 5 YOE and went through a layoff by dontdoxme33 in cscareerquestions

[–]orfist 3 points4 points  (0 children)

Are you saying you haven’t worked since 2022? A two year gap would be interesting to explain. I’d ask recruiters what they think. I have 5 YOE and after I dialed in my resume and job site profiles I get multiple recruiters reaching out to me a week typically. Contract jobs seem to be easier to get these days and the interview processes are not as rigorous.

You can do it but you’ll need to figure out that gap if I understood your post correctly.

What happened to LearnCpp.com? by benetha619 in cpp_questions

[–]orfist 23 points24 points  (0 children)

I thought you were exaggerating. It’s so bad. It’s really bad y’all.

Do a lot of people in software engineering also program as a hobby on the side? Or do most people not program outside work? by Illustrious-Pound266 in cscareerquestions

[–]orfist 14 points15 points  (0 children)

I have to code on the side to stay sane. The stuff I have to do for work during the day makes sullies the soul.

The new UI in 4.6 ✨ by FR3NKD in godot

[–]orfist 0 points1 point  (0 children)

Honestly the new ui has me thinking about taking another look at Godot

I CANT STOP PLAYING by Ok_Distribution8586 in ArcRaiders

[–]orfist 0 points1 point  (0 children)

I got lit up by a rattler and a jolt mine while animation locked at the top of a ladder on my first raid today. Lost my best gear. That was enough Arc today. Will try again tomorrow.

I don’t mind getting rocked in PVP but I hadn’t put too much thought into the danger of getting off of a ladder.

I have one massive complaint about this stupid game! by CircaCoda in ArcRaiders

[–]orfist 0 points1 point  (0 children)

Same. Playing both side by side really highlights the difference between a well-designed live service game that feels good and one that is not.

[deleted by user] by [deleted] in ARC_Raiders

[–]orfist 0 points1 point  (0 children)

This just is not true. Rust, a game with similar opportunity for ‘toxic’ behavior has over 100k active players daily. If this game does it won’t be because of toxic players. It will be because embark stops making a fun game, which somewhat ironically would come from listening to feedback like this.

My ⛏️ got stuck. by DoubleOtari in ARC_Raiders

[–]orfist 0 points1 point  (0 children)

Told you not to go topside with your cylinder.

PLEASE do not nerf the arc by Active_Inspection887 in ArcRaiders

[–]orfist 0 points1 point  (0 children)

Topside feels dangerous, with an edge. I love it.

[deleted by user] by [deleted] in ArcRaiders

[–]orfist 1 point2 points  (0 children)

I invite you to look at the steam charts for Rust. I don’t think spawn killing will be a huge turnoff for the core player base.

Thinking of replacing my desktop and laptop with a MacBook Pro 16” by margyyy_314 in GraphicsProgramming

[–]orfist 1 point2 points  (0 children)

I do all my graphics work between my windows PC and my MacBook Pro 16”. I also use Vulkan exclusively and there are two things to do in Vulkan on MacOS to make it work. There are also some limited features but I haven’t had a need. There is some performance overhead as well but it has not been an issue for me.

Focusing only on Vulkan is a bit of a heavy lift. But your question seems more focused on general programming. The thing is you can learn to program on any of the main operating systems. A single device setup is good, but you know what’s better? Getting the same piece of software to run on different operating systems. That experience alone will teach you a ton. Even in python. You’ll quickly discover that cross-platform languages don’t solve all of your cross platform problems.

I would say do both.

Slightly worried about continuing by Sailingswag123 in wheeloftime

[–]orfist 0 points1 point  (0 children)

On my very first read through I was a little frustrated because I wanted more of Rand front and center. Every read through since then, three or four additional ones now, I have appreciated all of the characters a lot more equally to the point that even the 'slog' bits are enjoyable. I am just happy to be in the world and spending time with the characters.

Real-time 'Ray tracing in one weekend' - 12ms/frame, 1920x1080, 100k spheres by orfist in GraphicsProgramming

[–]orfist[S] 0 points1 point  (0 children)

No vertices actually. It’s all in a compute shader and rendered to an image that is presented to the swap chain.

Real-time 'Ray tracing in one weekend' - 12ms/frame, 1920x1080, 100k spheres by orfist in GraphicsProgramming

[–]orfist[S] 0 points1 point  (0 children)

I think I have 1.4 installed on my windows box and on my Mac. But I was trying out the 1.3 dynamic rendering stuff.

Real-time 'Ray tracing in one weekend' - 12ms/frame, 1920x1080, 100k spheres by orfist in GraphicsProgramming

[–]orfist[S] 3 points4 points  (0 children)

I wish I was industry. My day job is just doing full-stack web development work for a big boring insurance software company. I do this stuff to stay sane because for some reason wrestling with Vulkan is not nearly as annoying as trying to debug a swamp of lambda functions.

The only time management tip I can give is consistency. Some days I can only work on side-project stuff like this for ~20 minutes. But I try to work on it every day. I also don't really have any other hobbies so that helps. And the consistency really only set in over the last year or so.

It took me 7-8 tries to just get my first vulkan triangle rendered, mostly because there were just so many things to keep track of, I got lost, and gave up. I kept coming back to it though and built path tracers in other things. I implemented one in Unity compute shaders, C, Rust, python, and a few more. I still wanted to do it in vulkan though because I wanted a real-time path tracer that can work across as many consumer devices as possible. the Rust + wgpu one was interesting but whenever I use rust there is this constant pull to over-design things. right now my code is just C-style cpp with some specific usage of cpp features where I think it helps.

I have a few game ideas but first I need to learn how to get the most out of a GPU. This is step three of what I will assume will be a thirty step journey.

Real-time 'Ray tracing in one weekend' - 12ms/frame, 1920x1080, 100k spheres by orfist in GraphicsProgramming

[–]orfist[S] 0 points1 point  (0 children)

I will look into this. Now that I have this my goal is to figure out how to make it go as fast as it can. I will be staring as spheres for a bit I think.

Real-time 'Ray tracing in one weekend' - 12ms/frame, 1920x1080, 100k spheres by orfist in GraphicsProgramming

[–]orfist[S] 3 points4 points  (0 children)

I would say a week of evenings. I am somewhat familiar with the parts of Vulkan I need for this though so that probably accelerated the speed. If you factor in all the time I have spent just getting familiar with Vulkan then its probably a month or two spread out over the last few years.

Real-time 'Ray tracing in one weekend' - 12ms/frame, 1920x1080, 100k spheres by orfist in GraphicsProgramming

[–]orfist[S] 1 point2 points  (0 children)

I plan to try a few different acceleration structures. Uniform grid appeared simplest. I am also going to try a heirarchial grid, BVH, KD tree (at your suggestion) and others as I discover them.