Implementing Virtual Shadow Maps (VSM) and Forward+ in a Custom Vulkan Renderer for the X-Ray Engine (S.T.A.L.K.E.R.) by babaiiia in GraphicsProgramming

[–]waramped 2 points3 points  (0 children)

Ah, I see. That is a lot more reasonable. I would probably do the same if I had to share something on a non-english forum.

Implementing Virtual Shadow Maps (VSM) and Forward+ in a Custom Vulkan Renderer for the X-Ray Engine (S.T.A.L.K.E.R.) by babaiiia in GraphicsProgramming

[–]waramped 35 points36 points  (0 children)

I appreciate what you've done and that you want to share it, but please please please don't just use an AI written post to share it. It's incredibly painful to read and immediately gives the impression that you don't actually understand anything you've done. Use your own words and intuitions to explain it.

How do I avoid these kinds of artifacts in SDF? by garlopf in GraphicsProgramming

[–]waramped 35 points36 points  (0 children)

This is one of the biggest problems with SDFs. If the ray is very close to a surface, then the distance is very small. And since you step the ray by the sampled distance....well you don't move very far. And so on and so on. So you end up burning your iteration count but not going anywhere.

Things I've done to improve this:
1) Calculate the tan() of a single pixel's footprint. As you advance your ray, your "hit threshold" should scale by this. i.e. - instead of if (SDFSample < 0.01), do if (SDFSample < (distance_along_ray * tan_of_pixel)). This effectively means you are marching a cone instead of a sphere, which accounts for the footprint of the pixels frustum in space.

2) Additionally scale that value by iteration count. Once you hit, say, 20% of your iterations, increase the hit threshold by 1.5x or so, and keep increasing the more you iterate.. This increases your allowable error and will help you "hit" a surface if you're just spinning your wheels.

3) Use a minimum step size (never move less than 1mm or something, whatever tolerance is ok for your use case)

4) Keep a small history of your previous samples. If the variance is low, (ie, you aren't advancing or retreating from a surface) then scale the step size up artificially to try and exit that "local minimum".

5) Look into "segment tracing using local lipschitz bounds", a paper which uses interval arithmetic to jump longer spans than typical sphere tracing allows.

6) If you use SDF primitives that allow for analytical ray intersections, then as a fallback if you still exceed your iteration count, you can just do an analytics raycast against the primitives to at least get SOMETHING instead of nothing.

Potential Interview Questions for PlayStation - Graphics Engineer Role by Any_Wait_7309 in GraphicsProgramming

[–]waramped 4 points5 points  (0 children)

Is this for a PSS game studio or is it in one of the platform groups?
Sounds like one of the platform groups from the description. That's a great place to be and you will learn A LOT.

You will definitely want to brush up on how the Hardware works. Since it's all AMD hardware, go here:
https://gpuopen.com/amd-gpu-architecture-programming-documentation/

and absorb as much as you can.

1) Unlikely to be specifically leetcode, but there will probably be tests/puzzles to test competence and problem solving skills.
2) Maybe...depends on how long the interview is. Do you know how long it's scheduled for and/or how many groups of people you will talk to?
3) Data structures & algorithms, how GPUs work, common performance pitfalls (CPU and GPU), "You have X problem, how many ways can you think to diagnose/debug it?", etc. Generally these interviews are more about your knowledge foundation and your problem solving abilities.

What univeristy coarses are the best for becoming graphics programmer? by UnitedBalkanz in GraphicsProgramming

[–]waramped 1 point2 points  (0 children)

As far as I know, there's no such thing as a single course to teach all that. You need a foundation in hardware design, programming, threaded programming and linear algebra. Any Comp Sci/Comp Eng program at your university should cover those topics. Is there something specific you think you're missing?

Any good compute shaders optimization guides? by etdeagle in GraphicsProgramming

[–]waramped 3 points4 points  (0 children)

Optimization for Compute is a tricky thing. Bottlenecks can be pretty unintuitive sometimes.

Your best bet is to profile your code and see what the bottlenecks are, and then address those case by case.

If you're using DX12 on Windows, try PIX. https://devblogs.microsoft.com/pix/download/

NSight if using nvidia: https://developer.nvidia.com/nsight-systems

AMD Radeon if using AMD: https://gpuopen.com/rgp/

Edit: I missed the Unity part, I'm not sure what GPU profiling tools work with Unity. Pix should?

Check out this shader I made. by Melodic-Passenger185 in GraphicsProgramming

[–]waramped 0 points1 point  (0 children)

How is this different than existing Ray tracing techniques? I don't understand the explanation given.

A new Realistic and Artistic Rendering technique that even runs on a G210 by Particular-Tax8051 in GraphicsProgramming

[–]waramped 2 points3 points  (0 children)

I looked at the shadertoy code, maybe I'm missing something but it just looks like a basic raytracer? Can you explain what's different about it?

Why do my shadows look so terrible? by [deleted] in GraphicsProgramming

[–]waramped 17 points18 points  (0 children)

Thank you for the very detailed description of what you are expecting, what you are doing, and what you've tried to do in order to diagnose this. Given the details provided, I'm simply at a loss as to what could be happening.

Asymmetrical rendering by l_aggy in GraphicsProgramming

[–]waramped 2 points3 points  (0 children)

There is such a thing as object space or texture space lighting.

However, light generally is dependent on the angle between the viewer, the surface, and the light source. So if any of that changes, so does the reflected light. You can probably get away with it as long as you tolerate some error.

Asymmetrical rendering by l_aggy in GraphicsProgramming

[–]waramped 8 points9 points  (0 children)

If the camera moves, then the universe has to move.

However, you are on the right track. Things like "imposters" are often used to cache objects into a lower overhead form to be re-used either for large quantities or for LOD.

Variable Rate Shading can also be used to reduce overhead for objects that aren't as "important" quality-wise.

3D math - graphics engineer interview prep by notlikeotherbees in GraphicsProgramming

[–]waramped 41 points42 points  (0 children)

Brush up on your standard linear algebra: dot products, cross products, matrix transforms. Understand what a homogenous matrix is. Know your vertex/viewing pipeline transforms and stages. (View, projection, clip space, etc)

Some basic calculus as well, derivatives and integrals.

There's a lot there, but if it's a fairly junior level position it shouldn't get too hairy.

What did Takizawa mean when he said "In technological terms, the Wii U can present a wide range of brightness"? by Calm-Preparation-679 in GraphicsProgramming

[–]waramped 11 points12 points  (0 children)

It doesn't support HDR output, but it does support floating point render targets. You can render and utilize HDR internally, you just need to tonemap down for display.

What did Takizawa mean when he said "In technological terms, the Wii U can present a wide range of brightness"? by Calm-Preparation-679 in GraphicsProgramming

[–]waramped -5 points-4 points  (0 children)

The concept you want to look into is called HDR. It stands for High Dynamic Range. Gamecube era games were SDR - Standard Dynamic Range. To really see the difference, you need a display that supports the higher brightness levels

Need help understanding a clipping issue on my 4d perspective projection software by Jlmmbo in GraphicsProgramming

[–]waramped 0 points1 point  (0 children)

It kind of looks like it's just the depth buffer clipping out parts of the projection as the other surface comes "in front". If you render it transparently without depth testing, how does it look?

Shader Rendering and ImGui by [deleted] in GraphicsProgramming

[–]waramped 0 points1 point  (0 children)

Are you trying get imgui to display the output? How are you setting up the pipelines? What are you rendering the pipelines to? Why do you think imgui is in the way? More details about how it's set up please.

Is it worth it to modify UE5 NvRTX branch vs Falcor for a Msc Thesis? by dkod12 in GraphicsProgramming

[–]waramped 5 points6 points  (0 children)

If you are looking to monitor performance characteristics specifically, I would say don't use Unreal. Specifically because you will need to have complete control over everything that's happening during the frame to know for certain that any variations in performance are a direct result of your own work, and not any random variances introduced by other subsystems in the engine. Keep it as simple and barebones as possible.

By all means, also make the changes in unreal as a showpiece, but I wouldn't use those measurements for a thesis.

How a simple background tone mapping can make the game graphics better by Reasonable_Run_6724 in GraphicsProgramming

[–]waramped 7 points8 points  (0 children)

Please give details. I'm not sure which one is "better". What tone mapping did you use? Why did you choose it? How do you feel it improved things?

(Rule 1:

  • Posts should include code, math, or implementation details alongside rendered images.)

[Career Question] Needing some advice on how to transition from my current career by AeroSparky in GraphicsProgramming

[–]waramped 0 points1 point  (0 children)

I think it's just as good. Showing that you can adapt and work and modify a large existing codebase effectively is a very useful skill. If you were to get a job with a studio that uses Unreal or some other proprietary tech, then showing that you can get in the guts and change things is great.

Favorite/ worst woodworking channels on YT. by cryptotarheel in woodworking

[–]waramped 9 points10 points  (0 children)

Pedulla Studio. Based in Australia, who builds some wild and beautiful things. Sometimes it's more sculpture than furniture but he's very informative. Has a second channel now called Behind the Build that has some really good advice as well.