Some general advice and tips from me, an expert graphics programmer
huge thread below.
read e.g. advanced GDC presentations and siggraph papers, and
then implement them by youself in an reasonable amount of time,
I consider you an advanced graphics programmer,
How can we acquire this level of skill? I shall tell you how I did it!
is implement their own little rendering engine. I did this when I was a
beginner, and implemented things like:
* water rendering, with dynamic reflections
* ambient occlusion'
* deferred rendering
* view frustum culling
* shadow rendering
* anti aliasing.
all kinds of rendering features, is IMO the best way to go from
beginner to intermediate.
write a blog post about it. Writing blog posts allows you to deepen your understanding
of what you've implemented, and improves your communication skills, which
is very important in this industry.
discussions with other graphics programmer, and this deepens your understanding
even more.
in the field. Every week, read the latest blog posts, and latest papers that
people post on twitter.
in this situation, I think it is enough to skim the paper, and skim until
you understand the main idea behind the paper.
necessary to understand, if you are really gonna sit down and implement the paper
yourself. But if you're pressed for time, understanding the main idea
is more than enough in my opinion.
incorporate the technique into your future projects
How do we implement a paper? Below is my technique.
spend most of my efforts is often called "method".
all possible optimizations, and figure out how to implement the technique
as simple as possible, disregarding things like performance.
how difficult is it to integrate into our current engine?(very important in the real world)
is the visual quality of this technique good enough for our purposes?
and adding the advanced parts of the technique.
have a "ground truth" to compare with. e.g., if implementing a real-time
indirect illumination technique,
so that you have a ground truth you can compare your implementation with.
certainly compare your technique with PCF filtering.
exactly how they should be translated to code. Some small tips when
translating math to code:
* set notation is oftem just used as a fancy way of showing arrays in a paper.
point at which the gradient is zero
into one big equation. that is, they are just a colletion of many small pieces of information.
if the input mesh just consists of a single triangle. walk through the math formulas
for such a single triangle mesh. this often makes it much easier to understand
the math formulas
* people often implement siggraph papers in their master's thesis, and provide many valuable implementation details in their thesis. Try to find such thesis!
* try asking your colleagues, or experts on twitter(like me) for help
an important part of implementing a paper:
these tools how you to quickly locate hotspots in your code.
devblogs.nvidia.com/the-peak-perfo…
degradations.