Getting Started

Hello World

I am a 3D Artist/Animator who enjoys programming as a hobby. I love programming and I would like to get more into the programming side of things. Whether those things include pipeline tools/shaders or what have you. The thing is is that I have no idea where to even begin.

As veterans, do any of you have suggestions of baby projects to begin with? Links to tutorial projects or general advice that you wished you had starting out?

Thank you so much to anyone who took the time to read this,
Mhett

For shaders, definitely check out the stuff @bcloward has done with Shaders 101 through 301 (here’s 201 from GDC 2017) https://drive.google.com/open?id=0B1Kflq0fBla3ZV80Q3RGZFBJMjg . They’re all in UE4 and he breaks it down really well. Might be worth just implementing what he’s got here to see how much you can learn from it.

1 Like

@ozzmeister00

Thank you so much! This all looks amazing and rich with information.
This prompted me try to find other resources, and I believe this is a tutorial for shaders in Unity. This is for anyone else looking for help in the future.

As for projects to get started with non-shader coding.
I would start with the simple things that you find yourself doing repeatedly, and look into ways of automating it. Basically ask yourself, is there anything I do that has 2 or more steps that don’t actually require me to make a decision? If so then it can possibly be compacted into 1 step.

1 Like

Exactly as Bob says - and it has the added benefit of, if it’s something you would actually find useful (rather than simply being an exercise), you’re far more likely to actually finish it! Most TDs git repos are full of half finished (or half started, in my case) projects.

This is also fine, by the way - but it’s nice to finish something that you’re proud of!

1 Like

I can definitely relate to this. I just file most of them under “I learned something”, but yeah it would be nice to finish some of them.

1 Like

I recommend starting with Python in Maya. If you have Maya installed, you can sidestep all of the python installation and environment setup and jump right into the actual scripting with tangible feedback in a program you already have some context for… then the python concepts can translate into other tools outside of Maya later.

I have no idea if this is a good resource, but I found it on the GOOGLES so it must be legit, right?
http://zurbrigg.com/tutorials/beginning-python-for-maya

For a first project, see if you can make something really straightforward, like a single button dialog that selects the first bone named ‘root’ that it finds in the outliner. Don’t get crazy on your first time out planning an auto-rigger or prop randomizer that places on the terrain mesh.

1 Like

That’s really dependent on them having experience or interest in Maya, which Mhett did not mention. But I agree. Python in the context of your chosen DCC is easier to learn and apply for tech artists, than by studying it in web design or data vis or whatever general context.

Chris Zurbrigg’s tutorials are good!

Another idea when just getting started is to do like someone learning guitar. The first thing they do isn’t to write songs or build a guitar. They learn to play some cover songs. Take a tool or shader someone made that seems interesting to you, and just recreate it for practice. Improve on it if you can.

Mhett, you mention programming and animation. What languages or software do you have experience in already?

2 Likes

@clesage Hello!

Thank you all for replying, I’m finding this all very helpful. I have written a lot of what you all have said into a google document.

Personally I have experience in Maya, 3DS Max, Unreal E4, Unity, Zbrush, Photoshop (Many Adobe Products), 3DCoat, Substance Painter and I am finally learning Blender. A good amount due to past student software. When it comes to Unreal VS Unity, honestly programming with drop-in blocks is sort of horrible? With time I am sure it becomes easier, but for now I think I prefer the line programming Unity.

As for programming, I have some basic knowledge in Python, C#, Processing (Java-ish), HTML and PHP. I have made some basic games using these languages. I am fine with learning new languages, it seems like the concepts of how to get something working is pretty transferable. Although I never want to program in PHP again.

I am just finishing up my internship, the last thing I need to do before graduating. As I look for work and have some down time, I really want to spend some of my time learning new things. I have lurked on this page for a while, but just recently thought it was time to work up the courage to ask for some guidance.

Genrally I loathe node-based programming… but for learning the actual interesting part of shaders it’s quite useful. Unreal and Unity’s graph based networks are a good place to get your feet wet, although at some point you’ll outgrow them. Still, it’s a good way to get results fast and get inspired, then you can really start to think about the underlying mathematical tools instead of syntax. Once you’re confident with the lookdev side of things, general purpose programming knowledge will get you to producitvity in HLSL or other shading languages.

If you’re interested in shader programming you should take a look at Shadertoy . It will take time to get to the level of the tricks you see there but all of the code is visible, which is great for learning. Also in the GDC Vault is Natalie Burke’s talk from 3-ish years back about animating with math. And there’s a good deal of node-based example work in the Unreal community – you can check oiut Ryan Brucks or the tutorials here

2 Likes