CG@Penn FAQ

WORK IN PROGRESS

Caveat: This is my personal opinion. Most of the FAQ for CGGT translates well for DMD upperclassmen. Adam Mally & I have been working on evolving a lot of the course content for the program and the program's become stronger since I wrote this blog post.

CAREER PATHS

Will CG@Penn prepare me for a career in graphics? 

Yes. However, a lot depends on your initiative.

Personally, I found CGGT to be a good computer graphics program. However, in order to develop industry-level skills I had to dive deeper into subjects. I did not learn those skills directly from CGGT, I learned those skills through personal projects and the student community at CGGT. This was not so obvious when I joined the program. Looking back, I think a CGGT student would be better prepared if we were aware of two things -

  1. What career paths can CGGT help me prepare for?
  2. What extra skills do I need to learn outside CGGT?

What career paths can CGGT help me prepare for?

There are 3 industries that CGGT students can guide their career paths towards :

  1. Animation - Disney, Pixar, Dreamworks Animation & Blue Sky
  2. Gaming  - Blizzard, EA, Sony Playstation
  3. Software - Google, Facebook, Microsoft

There are 2 career paths in the industry that CGGT can generally help you prepare towards -

  1. Technical Director
  2. Software Engineer

Later in this FAQ, I discuss the skills required for these 2 career paths.

What extra skills do I need to learn outside CGGT? 

As a philosophy, go beyond class requirements to understand & implement the technology in the field that interests you. I think there are some skills I found as MUST-need. Later in this FAQ, I discuss the skills required for the 2 career paths - TD & SE

For example, in rendering you could try to implement the industry standard book (PBRT) or latest research in SIGGRAPH. You should do some primary research (speak your alumni) to find out which paradigms are important and design your software (renderer) accordingly.

 

What is a Technical Director (TD) ? 

In the animation & gaming industry, Technical Director (TD) can mean a wide spectrum of roles.

Each company has a different name for the particular TD role that CGGT best prepares for - Department TD (Dreamworks & Animal Logic), Technical Artist (EA), Global Tech TD (Pixar). The important point is that the role is usually - 99% engineering + 1% art. 

I think it's important for CGGT students to know this because when I talk to studios, the FIT is obvious. So, if you are interested in graphics & engineering - this is a great FIT.

I am good at programming but I am really interested in a more artistic TD role. What about more artistic TD roles?

There are other kinds of TD roles with more %art. Examples of this are - Character Simulation TD, FX TD, Lighting TD, Character Rigging & Crowds TD. If you are interested in those roles, spend significant amount of time on something like Digital Tutors or FXPHD. You have to convince the interviewer that you have extraordinary preparation via a SPECIALIZED demo reel.

NOTE - A round-about way of becoming an artistic TD, which I do NOT recommend : It is possible for a CGGT graduate to join as a Department TD and move into certain departments where you have both artistic & technical responsibilities viz. Crowds, FX & Lighting. Timeline - 2 years after your first role. 

I am good at programming and I want to be an artist. What about artist roles?

I define artist as these roles - Character Animation, Layout (Camera & Sets), Art Department, Surfacing, Matte Painting, Character Design, Storyboarding, Screenwriting & Character Design

If you are sure that you want to become an artist per this definition - I do NOT think CGGT is the right program for you. This is just my personal opinion. I would encourage you to attend other schools (Ringling, CalArts, SCAD) who focus on the art side and that is where you should go.

I am already in CGGT and I have made up my mind that I want to become an artist. I can't leave CGGT and go to another school. What should I do?

First, I completely understand this situation. I have known many people in similar situations. I have been there. I am sure I want to do something and I want to follow my heart no matter what. If this is your case, I would encourage you to chase your dream. However, be completely sure and aware that this will NOT be easy.

I think your options depend on what role you are interested in. The only one I can suggest something for is Character Animation -

For Character Animation, join Animation Mentor. I know engineers who switched careers to animation after graduating from AM. This is an intense program, so be prepared to balance CGGT & AM.

From this point in the FAQ, when I say TD - I mean the 99% engineering + 1% art role.

What does a Software Engineer do in graphics? 

In addition to TD, most animation & game studios have software engineers (SE) who build the software that artists & TDs work with. 

Software Engineers can be of two types -

  • Production/ Pipeline Engineers
  • R&D Engineers

 

PREPARATION

 

What's the difference in preparing for TD vs SE roles?

TD - requires knowledge of the pipeline and user workflows.

Accordingly your preparation needs to be more diverse than deep. Proficiency is required in the following skills -

  • Strong communication with Artists & other departments

  • Python
  • OOP Fundamentals 
  • Knowledge of third party software in following order of priority
    • Maya
    • Houdini
    • Mari
    • Katana
    • Renderman

SE - requires deeper (not broader) understanding of graphics and proficiency with computer science. 

Accordingly, there is less focus on cross-departmental breadth. Proficiency is required in the following skills -

  • C++11 - Read this
  • Data Structures & Algorithms - Read this or this
  • TBB/CUDA Parallel Programming - Read this
  • One Depth Area - rendering, fx, shaders, rigging 

Of course, if you have depth and breadth, you are golden.

Can you give me an example SE profile?

For example, if I wanted to prepare for Software Engineer - Rendering: I would prioritize 

  • C++11
  • OOP Fundamentals
  • Data Structures & Algorithms
  • TBB/CUDA Parallel Programming
  • One Depth Project - Path Tracer with Multiple Importance Sampling & BVH acceleration

You need to find out the state-of-the-art for your depth project by talking to alumni in the industry. CGGT may not have the right people or resources in your depth area. In order to maximize your career opportunities at CGGT, it is crucial to put in the extra initiative.

How can I prepare myself for both TD & SE roles?

It depends. Primarily on your initiative. All the skills mentioned above are required. With constant prioritization you can position yourself for both roles. 

That sounds like a lot of work. Is that even possible to do?

It is possible. 

However, realize that you MUST prioritize. Someone I know taught me about the rule of 80-20. 

Rule of 80-20 : How can I get 80% of the benefit in 20% of the time?

Where is the Rule of 80-20 applicable in CGGT?

Course assignments are my favorite place to use 80-20. In my experience, I have found that many times, I could learn or complete 80% of the material in 20% of the time needed to do the assignment. 

Learning to prioritize this way is very useful. To be effective, you must learn to identify where the maximum value for your time lies. 

For Example,

Situation - the IK/FK homework in CIS562.

Analysis - CIS 562 is conceptual. IK/FK are themselves independent topics. The key here is understanding frames of reference. By spending 20% of your time in frames of reference and joint rotations, you can complete 80% of this homework.

Counter Situation - the raytracer assignment in CIS560

Analysis - If you have never implemented a raytracer before, start early on this assignment. Talk to your TAs and find out which parts you should begin from. You can't 80-20 your way out of this assignment. It is time consuming and you should plan accordingly.

I am an international student. What constraints should I know of?

As an international student, you MUST plan your career. It is important that you understand the volatile nature of the movie & games industry. You should thoroughly research the companies that you want to focus on. Apart from your interests & passion in graphics, these are a few practical constraints you should research -

  • Does the company sponsor work visas? - I'd advise you to not spend your OPT with a company that can't commit to sponsoring you. It is necessary that you are clear about sponsorship when accepting an offer from a company
  • History of layoffs - If you get laid off, you have very little time to find another employer

REQUIRED KNOWLEDGE by GRAPHICS SPECIALIZATION

Rendering

  • Proficient in C++
  • TBB/CUDA Parallel Programming
  • Strong understanding of PBRT
  • Breadth - Implement your own Pathtracer
  • Depth - Acceleration Structures, Lots of Textures & Geometry, Integrators - Unidirectional, Bidirectional & VCM, Complex Physically Based Shading Models

Fluid Simulation

  • Proficient in C++
  • TBB/CUDA Parallel Programming
  • Strong understanding of Bridson & these siggraph course notes
  • Breadth - Implement your fluid simulator - FLIP/PIC or SPH or PBF
  • Depth - Multiple Interacting Fluids, Fluid-Solid Coupling, does it scale to complex scenes beyond a simple dam break

Game Development

TBD

    Rigging Resources

    (credit - http://graphics.cs.wisc.edu/WP/animation11/2011/03/18/papers-on-skinning/)

    A. Basic Skinning – The Classics

    1. Mohr & Gleicher. Building efficient, accurate character skins from examples. SIGGRAPH 2003. http://dx.doi.org/10.1145/882262.882308,http://www.cs.wisc.edu/graphics/Gallery/SkinFromExamples/
    2. Lewis, et al.  Pose space deformation: a unified approach to shape interpolation and skeleton-driven deformation. http://dx.doi.org/10.1145/344779.344862

    B. Basic Skinning –The Modern Take

    1. Kavan, et al. Geometric skinning with approximate dual quaternion blending. ACM ToG, 2008. http://dx.doi.org/10.1145/1409625.1409627
    2. Merry, et al. Animation space: A truly linear framework for character animation. ToG 2006. http://dx.doi.org/10.1145/1183287.1183294

    C. Cage-Based Skinning

    1. Austin. Moving Remy in Harmony: Pixar’s Use of Harmonic Functions. American Mathematical Society. http://www.ams.org/samplings/feature-column/fcarc-harmonic
    2. Joshi, et al. Harmonic Coordinates for Character Articulation SIGGRAPH 2007.http://graphics.pixar.com/library/HarmonicCoordinatesB/
    3. Ju, et al. Reusable skinning templates using cage-based deformations. SIGGRAPH Asia 2008. http://dx.doi.org/10.1145/1457515.1409075

    D. Other things of interest

    1. Kry, et al. EigenSkin: real time large deformation character skinning in hardware. SCA 2002. http://dx.doi.org/10.1145/545261.545286
    2. Baran&Popovic. Automatic Rigging of 3D Characters. SIGGRAPH 2007.http://dx.doi.org/10.1145/1276377.1276467
    3. Gal et al. iWIRES: an analyze-and-edit approach to shape manipulation. SIGGRAPH ‘09. http://dx.doi.org/10.1145/1576246.1531339
    4. James and Twigg. Skinning Mesh Animations. SIGGRAPH ’05. (project page)

    E. Surveys we have no on-campus access to

    note: these surveys are only available on campus

    1. Cohen-Or. Space Deformations, Surface Deformations and the Opportunities In-Between. J of Comp Sci & Tech. (pdfhttp://www.springerlink.com/content/52u84pnn27632319/
    2. Xu & Zhou. Gradient Domain Mesh Deformation — A Survey. J of Comp Sci & Tech. (pdfhttp://www.springerlink.com/content/h6171gxl22814251/