|
by Jai Natarajan
Introduction
The Computer Graphics (CG) industry in India is very young, but
it is growing rapidly. Until recently, the emphasis has been on
small teams using off-the-shelf tools for short projects. At this
point, India is yet to enjoy its first home-grown Toy Story or Jurassic
Park, or to make a hit 3D game.
CG in India
is dominated by Visual Effects, Animation and Gaming. The typical
mode of entry to animation and FX studios in India is via private
academy courses, where tools like Maya or Max are taught. Generally,
a fine arts background is considered very helpful, but not essential.
Interestingly,
while CG is rightly considered a highly artistic profession, its
growth in the West has also been greatly fueled by the participation
of a large community of engineers and scientists. In fact, CG offers
a unique opportunity for people from software and engineering backgrounds
to enjoy a creatively rewarding and exciting career compared to,
say, a career programming applications for banking databases. Meanwhile,
a shortage of such people entering the Indian industry has thus
far severely hampered its ability to execute technically challenging
long-form projects.
Areas of Activity
There are several
areas of activity which offer ripe pickings for technical personnel,
at different levels of technical involvement. Some of these are
described in detail below.
1. Core Tools
Anyone who has
used a package like 3D Studio Max or Shake can imagine the programming
expertise and domain knowledge which goes into creating such software.
Most of the major studios in the world have software teams which
build proprietary software for their use, often with features a
step ahead of what is in the market. This allows them to keep up
the pace of innovation. As the amount of proprietary software grows
within a company, it also gets standardized into core libraries
which are the framework upon which new applications are built. There
is a significant software engineering task to design, implement
and integrate new and complex techniques and algorithms into production-friendly
tools. Studios in India have not yet evolved to this advanced stage.
Meanwhile, several
successful product companies have also been created, for example,
Alias, Discreet, Avid, Adobe etc. Their purpose is not to produce
content themselves, but to create tools to sell to the CG community.
For those who think that successful product development is the exclusive
preserve of the US, it might come as a surprise to find how many
award winning products use every day in the industry originate from
Canada and Europe. Several marquee companies are now opening offices
in India or are outsourcing development activities for their products
to India. The most notable one is Adobe, which has moved several
of its multimedia product teams to India. These companies constantly
face a shortage of trained personnel.
Software engineers
writing core tools need to understand the principles and core algorithms
of computer graphics, as well as user interface design and performance
tuning. The usability and performance of CG programs are the most
critical aspects for success.
2. Plug-ins
and Scripts
Most of the
major tools come with plug-in interfaces and embedded scripting
languages. These are used to expose a lot of the core functionality
of the tools for easier customization and extension. Smaller studios
can leverage these for very specific tasks unique to their own pipelines
or workflows. Developers can also sell well-designed plug-ins as
a product to the user community. 3D Studio Max is a successful example
of this philosophy. In fact Max was designed as a bare-bones platform
for developers to add their own functionality. This made Max a great
entry- level tool and pioneered a wave of technical innovation by
third parties. Today we are seeing the full cycle where Discreet
is buying back some of the successful plug-ins and integrating them
into the main product.
The cost saving
to a studio to replace a site license of a cloth plug-in by an in-house
solution can significant. Most of the tools are now so open that
studios can program their own custom particle simulation systems,
renders, cloth systems, animation controls, 2D filters, shaders
etc. The software engineers who identify and design these tools
need significant insights into the production and artist process
in order to precisely identify the requirements, and need to implement
or design solutions for those requirements.
3. Pipeline
Tools
FX, animation
and game studios carry out very complex tasks where data is passed
from artist to artist or shared among multiple artists. Shots pass
from scanning to dirt and wire removal to matchmoving to animation,
FX, rendering and compositing. Characters are designed, modeled,
textured, rigged, and animated. Crowd shots use several creatures,
motion libraries and FX as well. All these activities cause data
to pass in and out of various tools, and new versions of the shots
are created daily, even hourly. This entire matrix of activity constitutes
the pipeline of the studio. The pipeline is almost a live entity
which has productions passing through it but is also being patched
and updated constantly.
Pipeline engineers
develop tools and scripts to enable and track the data flow in a
standard and predictable manner. They also automate many of the
menial tasks of data management, and convert data among multiple
formats. Pipeline engineers have to work very closely with the artists
to understand and support workflows, identify and rectify inefficiencies,
and write production specific utilities. They have to be innovative
and improvisational. It is useful for them to know light scripting
languages like Perl and Python, and to work with scripted UI libraries
like Tcl/Tk.
4. Technical
Direction
The term Technical
Director is confusing. It refers neither to the director of a film
nor the director of a company. A technical director is one who performs
a variety of tasks, but is ultimately the person who is responsible
for completing a shot. For example, technical directors set up and
assemble scenes, and optimize them - often a very complex task given
that they need to integrate and troubleshoot characters, sets, plates,
simulations of cloth/fur/particles etc.. They are typically responsible
for lighting, FX and rendering as well, though some studios have
specialties like Lighting TD or Crowd TD. A recent job description
is that of Character TD, who deals with all technical tasks related
to setting up a complex animated character like Shrek or Gollum,
from its script-driven custom animation rig controls to its cloth
and fur characteristics. Programmable shaders are also created by
TDs for renderers like Renderman or Mental Ray. Training in Mathematics
or Physics is also handy in particle and cloth simulations, particularly
in extending available "library" simulations using scripts.
TDs with a technical background can also go in early in a show and
develop generic techniques or simplify complex techniques to be
used on multiple shots by others.
Studios in the
US are populated by TDs who either have specializations in computer
graphics from major engineering schools like MIT and Stanford, or
are programming/scripting savvy artists. Anyone attempting a film
with hundreds of shots with no TD department would face a very daunting
task. This job function has been underemphasized in India, leading
to a two-fold problem - animators or modelers often double up for
FX, lighting, rendering and shot completion, while at the same time
companies cannot effectively execute technically complex content
or long form work.
Naturally, not
all engineers can be TDs. They need some ability and interest in
art, filmmaking and production, as well as a knack of achieving
visually pleasing results with technically complex solutions. However,
it is a richly rewarding and creative outlet for someone who is
not a trained artist.
5. Game Programming
Gaming is a
hot industry, growing faster than movies in the West. The revolution
in 3D gaming has been followed up by another revolution in mobile
gaming. More than any other media field, this is the one heavily
dependent on technology and technical innovation. PS2 and Xbox are
innovative hardware architectures, while gamers also drive new acceleration
cards from NVidia and ATI. On the software side, 3D games are built
upon game engines which are licensed from engine developers. Further
tools and AI behaviors are then built upon these engines. Assets
created by artists in modeling and animation tools are then exported
through custom tools to these engines and ultimately ported to consoles
if needed. In all these steps gaming companies are heavily dependent
upon programmers.
Game programmers
are a unique breed. They understand CG well, can develop or use
the software APIs of engines, and can tune the performance and make
innovative performance optimizations in the game code for the target
hardware - all under extreme deadline pressure! It is not uncommon
for key functions to be hand-optimized in Assembly Language! Clearly,
3D game programmers really push the envelope in terms of both software
and hardware skills. Mobile game programmers are also in short supply.
They typically work in small teams very closely with artists and
have to be innovative in improvising within the limited resources
available. The older classic hit games of the eighties are now being
ported to phones. Along with new movie tie-ins, this gives programmers
a chance to be an integral part of huge brand name titles in the
entertainment world. This field is also unique as there is a booming
domestic market and job opportunities abound.
6. Non-entertainment-related
CG
While entertainment
drives all the glamorous facets of the CG industry, CG is also a
very serious business in other spheres. For example, Scientific
Visualization is a field where very complex real-life phenomena
are visualized in 3D to help the scientists and engineers who are
studying those phenomena. This is seen in medical and genetic research,
weather systems, complex physics and chemistry simulations, etc.
Geographic Information Systems use sophisticated techniques to represent,
store, deliver and draw terrain meshes and geographic information
- more and more important with the growth of GPS. Augmented and
Virtual Reality use cutting edge techniques in real-time 3D to put
maintenance and trainee personnel in environments where they cannot
physically be present, such as Reactor Cores and Space Shuttles.
All of these application areas are not commoditized with off-the-shelf-tools,
but are driven by very sophisticated high-performance custom programs.
Skill Sets
A variety of
technical skill sets find expression in CG. This article will not
dwell upon the opportunities for hardware engineers in chip and
hardware design. However, on the software side, a fundamental understanding
of the core CG algorithms is essential, including some of the math
such as vector algebra. Introductory course in college or books
can provide this. Generally CG is programmed in C or C++, on top
of standard graphics libraries such as DirectX and OpenGL, which
need to be understood. Other specializations can emerge, such as
real-time techniques, mobile environments like BREW and j2me, simulations
etc. Non CG persons need not despair. They can learn the scripting
languages like Mel or MaxScript, and can learn useful pipeline scripting
languages like Perl and Python which are also useful for systems
engineers. More and more demand also exists for good database designers
and admins who will organize and manage the vast asset libraries
of productions. Studios rely heavily on their systems administrators,
systems programmers and hardware engineers to run their vast infrastructure.
Given how expensive
CG is, anyone with an innovative approach who can constantly find
ways to improve the efficiency of the workflow or the infrastructure
and eliminate menial tasks for the artists will always be welcome
in a CG environment. A knack for troubleshooting and ability to
work in heterogeneous teams alongside non-technical artists are
invaluable skills.
Jai
Natarajan has a background in Computer Graphics and Visual
Effects. He was previously a Technical Director at Industrial
Light and Magic, working on pipelines, lighting, rendering and
visual effects for films like Star Wars : Episode 1, The Perfect
Storm, Flubber and Mighty Joe Young. He has also worked at Sony
Electronics in the US. He returned to Mumbai in 2003 and has
since then worked with an animation startup and a game services
startup as an consultant on technology, creative and business
development matters. Jai holds degrees in Mathematics and Computer
Science from BITS, Pilani, and a Masters in Computer Graphics
from the University of California, Los Angeles.
Back to top |
Summary
Engineers, particularly
software engineers, have many career choices before them. They should
also consider a career in Computer Graphics, because their technical
skills and approach to problem solving can be very handy in an environment
currently characterized by complex processes and inefficient workflows.
Having a niche specialty is also very helpful as a career differentiator,
or as preparation for higher studies. Finding a creatively and visually
satisfying profession is also a huge bonus.
At the same time, the Indian industry should evangelize and engage
the engineering schools to provide a focus in CG through courses
and projects. An influx of technically savvy CG professionals will
enhance the creative process, extend the production capabilities
and raise the efficiency levels of a studio. Technology Investors
can also be on the lookout for good product opportunities in a booming
space.
|