Monday, July 14, 2014

Thoughts on UV mapping

I would like to think that it doesn't happen often, but truth being said, I don't know how often I make this mistake when teaching: assuming that something as natural to me as breathing, is also equally evident to everybody else. It happened when I started teaching UV mapping.

Basically, UV mapping consists in "laying flat" your 3D model, so you can create a texture for it (textures are flat entities). In my mind, that was exactly the same as playing making my own cardboard dolls and items, an activity I devoted myself for a long time while I was a little girl.

My world was a world where my parents had to skip dinner so my brother and I could have it. Their budget was pretty tight, and clearly, toys for the little kids wasn't a priority. But there was cardboard, there were color crayons I used to steal from my aunts in my summer visits, scissors and glue. I spent hours figuring out how to design my own toys, trying to make them "real", "3D". I didn't know what I was doing at the moment: I was mentally seaming and unwrapping 3D models on cardboard. It became natural to me, and I assumed that everybody else had similar experiences with cardboard games. To my surprise, these experiences weren't that common, and some of my students don't even recall to ever have constructed a dice from cardboard, which is one of the basic layouts to use.

That's how I built a whole unit assuming that everybody would naturally knew where to seam basic models. And with that assumption I went into explaining how you would cut and align the pieces of your models, to make understand how hard it is to do it manually, so I could introduce how Blender marks seams and cuts and aligns the pieces for you. And then I went into showing how our UV map can tell us where are structural issues in the geometry. And then I finally explained one way to decide where to place the seams, based in decisions we can take when seaming simple primitives.

And there it was: confusion. I seemed to be almost the only one clearly knowing why we had to seam at all, and visualizing the relationship seams-unwrapped model. Barely nobody knew why I was taking those decisions, how they would apply them on their own... Why I was doing everything I was doing. It actually was a struggle.

So 167 pages after, I decided to sort of start again. Taking advantage of the fact that we already knew the tools, we would seam models, from basic to a little less basic, to adding a bit more of detail. I took the chance to introduce more concepts, more insight to the process and nomenclature, and more methods. It seemed to help fixing my initial mistake of assuming that some of my experiences were a common place to everybody. Fortunately, my students have patience with me, and they know we eventually reach to somewhere.

That mistake makes me think (worry) about being too self-centered, and if perhaps my little world is too little. But how does one go about being more social, to learn about more experiences from others, when you're devoted to your work and said work requires concentration?

I don't know the answer.


  1. Blender is a complex piece of software and with that comes the inevitable "steep learning curve" that we have all heard about and experienced, oldies and noobs alike, There is rarely a wrong way in blender, what counts is the end result, we just strive for more efficient workflows to make ourselves better.

    The trouble is, the more efficient we become, the less we think about why we do it that way, it becomes instinctive and instincts are hard to communicate to others. Many of us learn blender while not understanding fully the "why" of the tutorial or lesson we are following but with practice, that knowledge falls into place. It has nothing to do with a self centered or antisocial instructor. We could set up a project, and ask 5 blender educators to teach how to do it.. I will guarantee we would have 5 different approaches, workflows and instructions, but all reaching the same end result. and none of them will cover every single method ,,, none will have that amount of time!

    Keep doing what you are doing, it is a valuable tool in our educational arsenal when learning blender!

    1. There are two points in what you say, which I agree with...

      "There is rarely a wrong way in blender." You know that I try to tell this to my students, every time. When they ask me "could I do this, this way?", my only answer is "give it a try: if you reach to your goal, then you clearly can".

      Maybe they want to know if their idea is the best/quickest approach. But, one: I can't know which is the fastest way. I know the fastest way I would try, with the tools I currently know, and anyway until I try, I won't be sure of it. Two: I feel that practice is a very needed learning experience. If you've had an idea about how to go with a model... Do it! Do not sit back because of fear: play your own ideas! That's how you get experience, and how we get to the second point I'd like to highlight from what you said.

      "instincts are hard to communicate to others"

      I've tried to explain at times how I've decided one workflow over another, and why my final result and not other. It's very difficult to put in words, and even words and images, what's a simple impulse from my mind, probably relating all my previous experiences and current knowledge. I try to think in models that posed a problem at some time, what I did at the time, how would I go for it now. It's hard and I feel awful when I can't transmit from where my instincts come.

      In any case... Of course I'll keep doing what I'm doing! And by the end of the summer, after a year and some more... We'll be done with the basics.

  2. At my job we are working to get everyone focussed on something called "defensive programming". This is a subject that starts as something about programming code, but is actually more of a philosophy.

    In short there are two steps. First you analyze which assumptions you make in a certain situation and then you start thinking of everything that can go wrong if those assumptions turn out to be wrong. Then you start building in checks (literally, in programming) which prevents errors or at least handles them nicely should they occur. This theory is harder to get used to than it sounds, but it's very effective in preventing major problems.

    As for your students, they do not have the experience you do. All nifty things you've learned from making mistakes, they still need to get to that point. You can't know exactly their level, but you do know what you've taught them before and if you're unsure they know about something, teach it. Good practice doesn't hurt anyway. At least now you've learned one boundary and can anticipate on that!