3D Graphics/Virtual Reality/What is your job like?
Expert: Olaf Piesche - 1/24/2005
QuestionHi, my name is Travis Larson and I have been assigned to ask a proffesional questions about a career of my choice. Programming, specifically graphics programming, is what I chose.
I'd like to know what your responsibilities are in a job of the sort, and what a day in the job is like.
Thank you for any response!
AnswerGood choice - as a graphics programmer you'll encounter a wide gamut of problems, many of which require custom-fit rather than textbook solutions. It can be one of the most interesting and rewarding fields in software engineering.
The responsibilities, of course, vary from company to company and project to project. As a graphics programmer, I've mainly been employed in the games industry, so I'll take that as a starting point.
Tasks can range anywhere from writing a simple particle system or an image import or processing filter to designing and implementing a complete 3D rendering engine and asset pipeline. Tasks I have worked on include the above, as well as code optimization and redesign, terrain renderers, physically modelled sky rendering, server code as related to synchronizing graphics events on several clients, water simulation, skeletal animation, mass-spring systems, shader pipelines, design and implementation of vertex and pixel shaders, and many more. It's a career that hardly ever gets boring due to the many different tasks that require knowledge, or rather the ability to acquire that knowledge, in many different subjects - from animation, particle, rigid and soft body physics over physics and math as related to light and the human visual perception to data compression and low-level optimization - not to forget the design and implementation of systems of sometimes considerable complexity, from an engineering stand point.
Most tasks you'll encounter as a graphics programmer will require a mix of creativity (to find the best solution for a given problem in a given situation - and most of the time, unusual solutions are the best), good engineering (always), optimization (and the underlying knowledge of how graphics hardware, algorithms and APIs work), determination and the desire to do things that haven't been done before.
As for a typical day, there is none. It very much depends on the company and the project, and of course there will be bad and good days.