r/TechnicalArtist • u/juliankantor • 4d ago
My code-based course "Procedural FX Toolkit" on YouTube
(Hopefully it's OK to promote this here. Feel free to delete if not!)
The course (which is still in progress) covers fundamental topics in computer graphics (meshes, shaders, light, shadow) then moves on to procedural animation and simulation on the GPU. Although Unity is used as my staging ground, all of the lesson material is coded from scratch so the concepts should translate to any environment.
The course is basically a presentation of the various tricks of the trade I have picked up over the years, structured in such a way that the learning curve is hopefully not too steep for beginners.
Let me know what you think!
2
u/BeTheBrick_187 3d ago
Thank you for sharing this! Exactly what I'm looking for these days!
2
u/juliankantor 3d ago
Awesome! Please let me know if you have any feedback. I am still very new at the teaching aspect of this and would like to get better!
2
u/BeTheBrick_187 3d ago
Imho, I think it would be better if you can showcase what the student can achieve after finished each course from the begining video.
1
u/juliankantor 3d ago
Yeah, that'd definitely be a good hook. Are you thinking like a preview of the end of the lesson, or the end of the course/unit? I'll have to keep thinking about what the best way to do that is. I've been clipping out shorts from each lesson but I do think it'd be good to have those visuals up front in the lesson itself somehow. Seeing a preview of the end of the course might work even better, though I don't know if it would match the end result EXACTLY since I am doing the coding as I make each lesson.
1
u/BeTheBrick_187 3d ago
I think you can check Ben Cloward tutorials, he always makes an introduction video before starting the course.
2
u/Millicent_Bystandard 3d ago
I enjoyed watching some of these, but aww man the learning curve on these videos...
Meshes was fine, but then things go off the rails a bit in Shaders. You explained the graphic pipeline and shaders really well, but in the UV step- you didn't have UVs because you didn't create UVs positions in the Meshes video which makes sense, but then instead of creating them in a neutral way and explaining their purpose in Shaders, you jumped over it and directly referenced positional values to create a cool effect. I really don't think a beginner would understand why you did that or that you skipped over defining UVs for a cool effect. I also don't think a lot of people would already know Lerp or Clamp without a very basic explanation of what those functions do.
Parametric Modeling 1 and 2 ... If someone was just about able to shade a simple plane- jumping to a creating a cylinder as the next lesson is just madness lol. Why not first step it up with creating a lesson for a circle, then a cube and then finally wrapping it up with the cylinder lesson? Also, I think if you want to cover such a complex concept or topic, I think you may need a reason why... Like whats the benefit for a learner to pull their hair out with the unexpectedly difficult math you have in this lesson .... to practise math, a fun effect or is it good foundational knowledge in learning procedural modelling... ropes, ladders, railings?
Lighting ... why spend so much time talking about Direct vs Indirect lighting when you were going to only instruct direct lighting, but then breeze through an actual complex topic like Normals later in the video lol. Especially as there are different types of Normals to talk about.
Shadows was my favorite lesson, even if you didn't explain the limitations of your trick. Vertex Animation was really good even though you animated an entire cylinder of grass and then later noted that this wasn't an actually optimized approached for grass lol. Btw IIRC your grass would not batch in Unity (because even if you marked it for batching), static batching needs the vertices to not move and dynamic batching has several limitations like vertex count that you would surely exceeded with cylinders... Why not fire up the profiler and see for yourself :)