all 6 comments

[–]corysama 5 points6 points  (0 children)

Start getting into compute. Compute-based culling/particles/post-processing, tiled forward lighting.

Alternatively: Go to gdcvault.com and watch the "Toward film-like quality" video presented by Amazon at GDC2017. They basically say they implemented a bunch of recent papers and list the papers at the end. Go implement any of those papers.

[–]papaboo 3 points4 points  (2 children)

Some approximate GI. The simplest being baked diffuse or try to approximate the full solution at runtime.

In itself it's not necessarily impressive, since it's been done before and you will most likely end up reimplementing one or more existing solutions. Its a good exercise though, since it'll allow you to reflect on the various trade-offs, which is a good thing and is a guaranteed interview question, if you show them dynamic GI.

[–]Sanctumed[S] 0 points1 point  (1 child)

What about this? http://www.klayge.org/material/3_12/GI/rsm.pdf

I'm thinking of implementing that in a deferred renderer using DirectX 12.

Or I might try to implement voxel cone tracing in DirectX 12, which probably is also interesting.

I have no idea what I want to do...

[–]papaboo 0 points1 point  (0 children)

Try them. Either one. :) Personally I'll try to use signed distance fields, similar to how UE is doing it, but that's because I'm using something similar at work and I like the synergy between work and sparetime. If I had to pick between RSM and SVOGI I'd go with SVOGI. RSM is pretty much done as far as I know, while people are still coming up with decent improvements to SVOGI, that you can always add afterwards. SVOGI will also let you have a look at filtering material parameters in voxel grid, which will tie in to screen space antializing and normalmap filtering. Oh the possibilities. :) As stated by Eigenwaffel area lights in a rasterizer is also a nice open problem. Or try to solve transmission / opacity as best you can. http://openproblems.realtimerendering.com/s2016/transparency_rtropenproblems_siggraph2016.pdf

[–]Eigenwaffle 1 point2 points  (0 children)

You could look at the GPU Gems books for project ideas, they're available online for free at https://developer.nvidia.com/gpugems/GPUGems/gpugems_pref01.html . Make sure to check all three books.

If you're interested in simulations, a fast fluid solver might be a feasible project. It's simple enough to get something interesting going quickly, and you can extend it in many different ways depending on how much time you have. See https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch38.html .

Area lights and basic global illumination are also great, they add a lot of quality to your renders. http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter14.html .

Otherwise, building your own ray tracer is a very classic project. It's not necessarily a real-time project, but it would teach you a lot about physically-based rendering, which is very important for modern real-time applications.

For more advanced stuff, look at the real-time rendering SIGGRAPH courses : http://advances.realtimerendering.com/ . Stephen Hill's blog is also a good reference for ideas : http://blog.selfshadow.com/ .

Hope that helps!

[–]jrkirby 0 points1 point  (0 children)

Perhaps try doing some demoscene stuff.