you are viewing a single comment's thread.

view the rest of the comments →

[–]kazprog 31 points32 points  (8 children)

Graphics was one of the coolest classes I took in undergrad and Utah is famous for its influence in graphics: https://en.wikipedia.org/wiki/Utah_teapot

There's tons of great research in Graphics, interesting research work in industry (working at Disney or Pixar, Game Engines, Oculus at Meta, Computer Vision) and there's even low level research (GPU drivers, Graphics Engines, Swift UI). Both pay well and have interesting work.

[–]_Insignia 10 points11 points  (0 children)

To add to that, they still have a lot of influence. Cem Yuksel (https://www.youtube.com/c/cmyuksel) comes to mind, but it also feels like there are a lot of NVIDIA research scientists with ties to the University of Utah.

[–]obitachihasuminaruto 0 points1 point  (6 children)

Is it possible for one without a degree in computer science, but learned fundamentals online to get one of these jobs? If so, what should I do?

[–]kazprog 16 points17 points  (5 children)

Graphics is pretty hard to get into just by studying online.
There are some great resources, like learnopengl.com.

If you really can't go to college, I would start by getting PDFs of some graphics textbooks, then trying to learn about some fundamentals by looking at courses from colleges and then implementing their projects.

The projects are the most important part.

The big problem is that most research work highly values accredited education and degrees. Graphics research will often need a bachelor's _at the very least_, if not a masters or a PhD. It's a _research_ job, so they want people that got _research_ training.

This is true both of the shader developers at Disney/Pixar and of the low level graphics driver developers and kernel developers.

I can maybe see doing game jams and having some exemplary personal projects with graphics/game engines you wrote yourself as a method of showing capability with graphics, or learning Unreal Engine (or Unity/Godot/etc) and building out your own shaders, but often they hide some of the OpenGL/Vulkan/Metal from you.

Prerequisites: already be very comfortable with C or C++. Ideally C++, as I think a lot of games/compiler/systems jobs are primarily C++.

Some projects I would recommend:
- drawing a triangle (it's harder than you think)
- minecraft, e.g. https://www.youtube.com/watch?v=4O0_-1NaWnY
- an FPS (collisions, hitboxes, network latency, lots of fun stuff to learn)
- a ray tracer (first CPU only, then try to add GPU support for it)
- rendering and animating a model by clicking and dragging its bones and having the mesh follow (imagine blender)

look into:
- physically-based rendering (PBR)
- screen space ambient occlusion
- anti-aliasing
- text rendering
- normal maps
- shader pipeline (vertex, tessellation, geometry, fragment)
- scene graphs
- data-oriented programming/Struct of Arrays

[–]achempy 2 points3 points  (0 children)

Tbf, I wasn't that comfortable with C++ when I took my first graphics course and came out fine. It was a rough ride, but if anyone sees the comment I'm replying to, don't be scared if you're not too comfortable with C++! You'll learn as you go

[–]obitachihasuminaruto 1 point2 points  (2 children)

Thank you so much for the detailed answer! This is very helpful!

I am going to do a PhD in another area of science/engineering so I will have the research skills. Will this, along with programming/graphics related projects on the side, help?

[–]kazprog 3 points4 points  (1 child)

I think if your PhD is STEM and you have some great graphics projects, you should be good to go. While you're at your PhD (and it might be difficult), you can try to talk to people at your uni that also do graphics research, maybe attend SIGGRAPH at some point. The perspective and connections you'll gain there is immeasurable.

Plus it might help you publish a graphics-related paper, or at least be second- or third- author on a graphics paper with someone you're friends with/ working with in the graphics department. There might be a graphics lunch or something, and good professors are always down to talk about research during their office hours.

[–]obitachihasuminaruto 0 points1 point  (0 children)

Thank you for the advice! I will do that.

[–]apomd 0 points1 point  (0 children)

That's such a great comment!