but just start the path and continue learning and learning. Interview earlier than you think you're qualified and listen to feedback. Learning on a job is a lot easier than learning on the side.
-
-
Prikaži ovu nit
-
1/n) Don't use any commercial engine or framework to start. There's far too much "magic" involved that will prevent you from understanding what's going on. You can always reference them or use them later.
Prikaži ovu nit -
2/n) Expect to have ~3 projects going at once (I'll describe them shortly). When you get bored of one, hop to the other, and keep cycling between them for the rest of your career.
Prikaži ovu nit -
3/n) Have a prototyping engine. Pick an API (preferably Vulkan as I believe the spec is clearer for beginners than the D3D12 doc). Don't bother wrapping anything, don't make it pretty, just make it work. This is where the majority of your experiments will happen.
Prikaži ovu nit -
4/n) Have a path-tracer (software rasterizer). Follow Matt Pharr's book on physically based ray tracing more or less to the letter, start to finish.
Prikaži ovu nit -
5/n) Have a "production engine" which you'd release to the wild if you so chose. Use, to the best of your ability, good abstractions to abstract out platform and API differences. Attempt to chase throughput with multithreading and graph-based abstractions.
Prikaži ovu nit -
6/n) Study and know linear algebra, projective geometry, geometric algebra/quaternions/dual quats, multivariate calculus, signal theory, fourier/harmonic analysis, and discrete math.
Prikaži ovu nit -
7/n) Study and know data structures, particularly acceleration structures but also understand the importance of I/D-cache utilization, effects of branching, and have a feeling for the latencies involved
Prikaži ovu nit -
8/n) Start reading papers and try to implement one to start. I'd recommend the Unreal BRDF paper. Understand the derivations and try to reproduce the results.
Prikaži ovu nit -
9/n) Learn about compression and aliasing. Write a BCn codec. Read about how video codecs work (the techniques are transferable). Research and/or experiment with the various AA techniques out there (MSAA, MLAA, FXAA, TXAA, etc)
Prikaži ovu nit -
10/n) Study other engines, preferably specialized engines as opposed to general-purpose engines. Check out talks from
@MyNameIsMJP or@MichalDrobot for example. The talk from@mirror2mask on Bungie's engine is a good primer to how modern engines are roughly structuredPrikaži ovu nit -
11/n) Learn to use the tools at your disposal. Core dumps, GPU dumps, frame dumps, visualizers, etc. Write your own tools when needed.
@RenderDoc is especially useful when getting acquainted with the graphics pipeline for the first time.Prikaži ovu nit -
12/n) Ask tons of questions. Graphics is really broad, and no matter how much I learn about any given topic, there's always someone that knows more than I do. Experts are usually really gracious about helping out and giving advice.
Prikaži ovu nit -
13/n) When you're in the industry, try to shadow an artist work from time to time (lighting, texture, modeler, vfx, technical, etc). Seeing their workflow helps you understand how the content pipeline pieces together. You also get ideas on how to improve things.
Prikaži ovu nit -
14/n) Don't spend too much time being intimidated. Take techniques/methods/algorithms one at a time. Slow and consistent improvement is much better than trying to cram it all in at once.
Prikaži ovu nit -
15/n) Be quick to admit when you don't know something (especially to yourself!) or you'll cheat yourself of a learning opportunity. Embrace the fact that you get to work in a field that has so much to explore and learn and do.
Prikaži ovu nit -
16/n) At the same time, don't accept what you read online as gospel-truth either. Sometimes, things change (hardware, drivers, apis, but also our own understanding of the best way to do things).
Prikaži ovu nit -
17/n) Don't get caught up in debates on A technique vs B technique (e.g. forward vs deferred, forward+ vs tiled deferred, etc). Learn what the techniques are and what the tradeoffs are. Implementation complexity also counts as a tradeoff.
Prikaži ovu nit -
I'm sure there are many things/points I'm forgetting, so if the twitter-verse would like to chime in, I'm sure future readers might appreciate it!
Prikaži ovu nit
Kraj razgovora
Novi razgovor -
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.