How do I get into graphics?
by Philip Nemec
People in the Gelato team (and in many other groups at NVIDIA) are often asked by students of various ages how to get into graphics - so let me share some of the answers we give.
There are really two sets of answers - with a good number of people overlapping the categories:
Art:
- practice "traditional" art - things like composition and lighting are important with or without a computer, so often the best way to learn is without one
- that includes sketching, painting, sculpture, etc.
- and my personal favorite - photography
- learn more about about things like color (perception) and light (physics)
- learn skills not "programs" - although some studios hire people based on the programs listed on their resume, those that produce the best work find it easier to hire people based on their portfolio, those with artistic skills, and then train them to use various programs. That's easier than teaching art to those that know where the buttons are in a particular modeling package.
- learn from examples all around you
- storytelling
- both good and bad movies - sometimes the bad can teach you the most
- ads - they're telling a story too - how well do they do?
- books - spend time time looking at the first sentence of lots of great books
- editing/pacing - timing matters in everything from movies to live comedy
- look at art of film books
- take a walk through a nice garden ==>
- look at how art is presented - like one of my favorite portraits of Yosemite
- storytelling
- learn what is possible
- talk to a painter about mixing pigments
- talk to a photographer about large format cameras
- find about the kinds of CG shots that currently take a week to render
Development:
- math is important
- particularly linear algebra (vectors and matrices are everywhere in graphics)
- trigonometry is pretty important too - lots of angles so sine and cosine come up plenty
- physics simulation uses lots of calculus and differential equations
- programming skills not languages
- a good programmer is quick to learn to read and write programs in another language, it is much harder to teach good programming
- that said, you should be proficient at programming in something!
- start early on the tough concepts
- parallel programming - thinking about things like the Dining Philosophers problem is needed more and more with multi-core CPUs but applies to developing algorithms that span CPUs and GPUs as well
- object oriented programming
- write a ray tracer
- I have lots of ideas of good programming projects, but this is one I think everyone should do at least once
- start with spheres and planes, but aim for something like this still life ==>