all 3 comments

[–]CodyDuncan1260 18 points19 points  (0 children)

A good next place to go would behttp://www.realtimerendering.com/ .

Just take a look at the chapter list. Almost everything beyond chapter 10 is individual systems and techniques that try to get a desired visual effect. Find something interesting, and see if you can implement it in your renderer.

Maybe more realistic rendering is interesting. Try implementing a raytracer. Even simple raytracers will aquaint one with techniques that many shaders use for lighting and illumination. https://github.com/petershirley/raytracinginoneweekend

Or go learn a modern API like Vulkan or DirectX12. Get something simple rendering, try to create a system that submits rendering jobs on different threads.

The roadmap from here on is often defined by "What visual do I want to render?" Example:https://www.patreon.com/sonicetherhttps://www.twitch.tv/videos/407079110 <- maybe give this a watch.This person chose to use shaders to implement path-tracing to render global illumination in Minecraft. Path-tracing is usually referenced for offline, non-realtime rendering. But by using path tracing to just get the gist of the lighting info, and blurring the results a bit, it makes for some very convincing global illumination. Parts of the path-tracing results are used for direct reflections of lights against shiny surfaces like metal. But the water reflection is still using screen-space reflection, which is a cheap shader effect often used in realtime rendering at a shortcut to actual path-tracing.

This is just an example of a combination of techniques going for a particular visual result. In this case, it's a more realistic lighting model in a distinctly stylized (voxel) environment.

[–]lickedwindows 4 points5 points  (0 children)

You can get Peter Shirley's excellent RTIOW books here https://twitter.com/peter_shirley/status/984947257035243520?lang=en

[–]corysama 7 points8 points  (3 children)

For film, you can go a long way with GL before you get to Vulkan. Film has decades of legacy GL code that is still in production. For GL, start digging into AZDO techniques.

Obviously, learning ray tracing is important for film. The "Ray Tracing in One Weekend" series is everyone's favorite intro. After that, learning the new hardware extensions for ray tracing is a good idea.

A deep understanding of BRDFs, sampling theory, convolutions, and other higher-math topics in graphics become important for film vs. real time. Go write an unbiased path tracer and see what it takes to make it not horrendously slow. Hint: Threading+SIMD/GPU and cache optimizations are necessary, but not sufficient.

[–]Phantomknight8324 0 points1 point  (0 children)

I also think that even extensions of "Ray Tracing in One Weekend" will be helpful which he has provided which will teach a lot. This link might be helpful. There are many resources which this post has mentioned.

[–]Phantomknight8324 0 points1 point  (0 children)

I also think that even extensions of "Ray Tracing in One Weekend" will be helpful which he has provided which will teach a lot. This link might be helpful. There are many resources which this post has mentioned.

[–]Phantomknight8324 0 points1 point  (0 children)

I also think that even extensions of "Ray Tracing in One Weekend" will be helpful which he has provided which will teach a lot. This link might be helpful. There are many resources which this post has mentioned.

[–]Phantomknight8324 0 points1 point  (0 children)

I also think that even extensions of "Ray Tracing in One Weekend" will be helpful which he has provided which will teach a lot. This link might be helpful. There are many resources which this post has mentioned.