Need applied graphics knowledge

Hi everyone,

I’ve recently started at a new job (yay!) and am loving it much more than my last studio. However, I’m finding that while my skill set works fine for 80% or so of the new job, I am finding some gaps now that I’m actually here and it is becoming quite apparent that I need some more depth in the area of graphics.

For some background, I have a computer science education and my areas of expertise have been in pipeline tools, asset management, and particle effects. Have never really been called on to do much rigging, technical animation, or shader writing. Lately though I’m finding general graphics stuff like shaders, compressing textures, lightmap baking, etc to be in demand.

I am seeing now how much of a benefit it would be to my team for me to pick up graphics knowledge. For example:

-Shader writing (Cg)
-Texture formats and compression
-GPU hardware
-Sorting, transparency, blending
-Render to texture (not just what it is, but WHEN and WHY it is useful)
-Lighting and rendering, shadows, dynamic lighting, etc
-The various buffers
-Draw calls, batching
-3d meshes and tri counts, especially in regard to performance
-…also how all this pertains to mobile :wink:

The problem is, I’m a busy guy… I’m working overtime lately which is fine, but not conducive to picking up new skills in my free time. I’m not aiming to get a graphics engineer level of depth, but at least enough trivia and practice to address a majority of the daily problems without needing to call in an engineer, which is very hard to do these days due to how busy and tight our schedule is.

So, short of going back to school, what are the best resources you’ve found for picking up knowledge in these areas? I’m hoping to get some recommendations on books, tutorial series, anything I can digest in bite-sized chunks of time after I’ve come home and collapsed on the couch. Thanks!

If you dont have much time, and you want to learn computer graphics. This is a good way to learn something new :

https://www.udacity.com/course/cs291
https://www.edx.org/course/uc-berkeley/cs-184-1x/foundations-computer-graphics/1003

Ben Clowards’ DVD “HLSL Fundamentals”, while 3DS Max specific, is an excellent intro to shaders.
The sellers web site, www.cg-academy.net , seems old and broken however.

https://www.shadertoy.com/ has a ton of examples playiogn in realtime via WebGL, with aside panel of tweakable code to play with.

Don’t buy any DVD from cg-academy.net. According to Paul Neal ( one main 3ds Max training material contributor on cg-academy), he never got any money they owed them for the creation of his training DVD’s. And he was not the only person who got burned there, as far i remember his post …

Thanks for the suggestions, guys, I’ll definitely check out some of the online courses.

What about learning even more specific stuff as it applies to games? Stuff that’s really useful in the day-to-day? I’d be surprised if no TA’s or graphics engineers have released books or some kind of learning resources based on their experience.

just got pick up the book, “real-time rendering” It covers everything you want to know about.

Physicall Based Rendering is a superb book written by guys from NVIDIA and Intel, I seriously recommend it but takes a lot of time to go through.

Shader writing is something that will help you grow knowledge of the stuff you want. Just write shaders for the engine your company uses. There are examples and free code on the net, you just have to get familiar with it and a will to not give up as soon as you hit a roadblock. There are lots of papers floating on the net(some of which require heavy mathematics) which you can try to implement.

From your list, it sounds like you want to learn more about graphics programming like OpenGL or DirectX.

For DirectX, these books are pretty good:
http://www.amazon.com/Introduction-3D-Game-Programming-DirectX-ebook/dp/B0085CDJY4/
http://www.amazon.com/Practical-Rendering-Computation-Direct3D-11-ebook/dp/B00918NNIS/

For OpenGL, these books are pretty good:
http://www.amazon.com/OpenGL-4-0-Shading-Language-Cookbook-ebook/dp/B005GV32H6/
http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference-ebook/dp/B00E1GL1SO/

All these books will give you a general overview of graphics programming. Both API’s have many online tutorials too.

[QUOTE=chadmv;23098]From your list, it sounds like you want to learn more about graphics programming like OpenGL or DirectX.

For DirectX, these books are pretty good:
http://www.amazon.com/Introduction-3D-Game-Programming-DirectX-ebook/dp/B0085CDJY4/
http://www.amazon.com/Practical-Rendering-Computation-Direct3D-11-ebook/dp/B00918NNIS/

For OpenGL, these books are pretty good:
http://www.amazon.com/OpenGL-4-0-Shading-Language-Cookbook-ebook/dp/B005GV32H6/
http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference-ebook/dp/B00E1GL1SO/

All these books will give you a general overview of graphics programming. Both API’s have many online tutorials too.[/QUOTE]

I really appreciate the book suggestions!

The problem is, I really do get a bit bored of straight up graphics programming. I did take a course on graphics, where we did some openGL/GLUT sort of stuff and to be honest I forgot most of it because it just wasn’t that interesting to me… I like being closer to the art side, which is why I went the tech art route instead of engineering =)

What I’m missing though, is common knowledge and trivia about graphics in game engines as it applies to practical art optimization and creation. If working my way up through the openGL or DirectX API’s is the best way to go, then I’ll do it, but I’m surprised that after all these years the industry hasn’t produced some kind of “best tips and tricks” documentation or courses that helps someone a bit more art-minded become knowledgeable on mid to high level graphics.

I think that learning something should be combined with using acquired skills by making some small, yet real projects. It’s difficult to consolidate the knowledge without this.

I would suggest looking into three.js for learning and prototyping graphics stuff.

Why?

[ol]
[li]WEBgl, web means it runs on javascript, javascript is friendly
[/li][li]WebGL is based on openGL ES, using ES shaders
[/li][li]three is a lightweight library, open source, with a pretty big community. It’s basically a rendering engine with a ton of extensions around that you can look at and learn.
[/li][li]
[/li][/ol]

It’s much easier to dive into than straightup openGL or direct3d, and even raw WebGL. You have a basic template shader that creates the basic matrices, connects to some lights etc, but you can use it to build anything. Through this, it’s easier to make sense out of the more low-level stuff.