3D Is Not Bad

I’ve been thinking recently about how I’ve been approaching 3d art, and perfectionism. I’ve know Millie for several years now, and we’ve been talking about headcanons and aus for quite a lot of that time. We’ve wanted to make things, and developed our stories quite a lot. But with my art, and plans to write fics, and in general show our versions myself and not just leaving it to her, I’ve always been tripped up by perfectionism.

At first, it was just realising that, upon taking it seriously, my skills were entirely lacking. Until I met her and we started developing things, my interest in 3d was quite casual; it was something I enjoyed, but didn’t work super hard on, and just played around, really. But that wasn’t enough for showing our versions of the characters, to me; they were deformed, lumpy, they had no recognisable anatomy, or little, and I didn’t know enough to rig them well enough, and, with their incorrect proportions, they wouldn’t look natural even if I could. I was also just using primitive NPR stuff back then, like cel shading and the inverted hull method of making outlines. Those aren’t necessarily bad, but they’re quite simple, and I found them generic; I wanted my art to look like mine, not something anyone could make.

But, as I continued, I ended up slipping without realising into a toxic mindset of nothing ever being good enough. Even if it was better than the last one, even if it looked about like what I wanted to show, it wasn’t sufficient. I’m still struggling with that. On top of that, I unintentionally sabotaged myself by making more work for myself. I didn’t like using basemeshes and such, so every time I made a character or something, I’d do it from scratch; the only thing I was really reusing were shader techniques I came up with. And that’s good for practice, but it makes it take a lot longer. I was, as a perfectionist, afraid that any errors on my base meshes would be replicated on anything made from it, and, being self-conscious of my art being 3d, and doing a lot to try and find ways to make it look more 2d, I wanted to do things from scratch more like 2d artists do, though at least I didn’t go as far as resculpting everything everytime I needed to make a render, at least.

The problem is, the longer I spend on something, the more likely I am to see the flaws. But, due to lack of motivation, or knowledge, or skill, or any other reason, I don’t resolve them quickly enough to be done with it an avoid seeing more, so I end up in a constant loop of seeing flaws and deciding I have to stop and fix those, then seeing more flaws. I become discouraged and start over, telling myself “This one, I will get right.” But I never do. I’m tired of that. I want to show what I can do. I want to show my style, and renders of the characters me and Millie have come up with together. I want to have things to show for myself, and pull my weight, and not just be saying I’ll do things without actually doing them. I want to be able to look back and see that I’ve done things, and feel good that they’re there, and try to do better next time.

So, I’ve started trying to change my mindset. Instead of thinking, “That’s not good enough.” I’m trying to think “I’ll do better next time I sculpt this, but I’ll use this for now.” And to take advantage of the fact that I’m doing 3d, instead of trying to make everything from scratch. I really want to get better.

At the moment, I’m working on chibi characters. I made a chibi base mesh a while ago, and rigged most of it using a Mesh Deform modifier, so I only have to make limited changes to make them into different characters. My current goal is to make a set of Ryous. I came across a technique while working on it that could allow me to do 2d eyes that can still be properly animated, whereas I’m currently using the method that uses an eye cavity. If I can work out how to adapt it to my chibis, I’d prefer to use 2d eyes, but I won’t let myself stop and investigate that right now. I need to finish things.

For now, I’m going to work on Ryou’s chibis, and make Mariku, Malik and Bakura ones, too.

Shader Experiments and Improvement Attempts

My previous renders highlighted a problem I’d not thought of while modeling them.

The soft edges look fine against only the white background. They appear soft and match it nicely, giving at least part of the look I’m going for. But, it doesn’t work with environments, or anything behind the object that doesn’t match the colour of the “canvas”, the white colour that’s being mixed with the object colour.

So, to fix that, I’ve been experimenting with replacing that white edge with transparency.

I tried using the alpha blending mode Hashed first. But I had that the problem of the interior’s faces being visible. That makes a more even silhouette, except that the lines of the front highlight the hole, making it appear more 3D. Hashed is also much noisier; even when I rendered with high samples it appeared grainy.

I also found the transparency worked too well this way; you could see through the model from one side and out the other. Looking at it from behind, I could see the eye that should only be visible from the front. Thinking of it as something to imitate 2d, this is very wrong; a silhouette in 2d is just a flat shape without depth. You should only be able to see the side facing the camera. I tried to correct this by making the backfaces also transparent, but this lead to some undesirable behaviour, too, like the empty eye socket rendering as a hole. Although, to have it both ways there is impossible, and ideally I wouldn’t have any backfaces showing to the camera to begin with.

In any case, Hashed turned out to be insufficient, so I tried Blend, but it has the same problem. It’s less noisy, at least. I suspect my colour ramp controlling the Alpha is at fault for being too weak, in part. But I need some method to get rid of the faces on the other side of the object; to hide what shouldn’t be seen.

After that, I experimented more with how I was making my silhouette, for a change of pace.

I have another method besides the Fresnel to product the rough shape of an object, using the Normals and Location/Position. I quite like the way this one looks. It’s soft and easy to work with. It’s not as specific as Fresnel or Layer Weight on the edges, which makes it easier to make it look 2d. But that’s also a disadvantage; I have do more to make it match the basic shape of some objects. The rough person-shape I made on the right, for example, has much less colour on the limbs. I also found this wasn’t compatible with my current method of texturing the edges, so they’re too smooth and perfectly neat.

It subtracts the Location from the Position so that when it’s moved in the world the values won’t change. The Scale vector is plugged into Normalise from a previous setup I forgot to disconnect. The cross product with the incoming is what allows it to change with the view.

In the end, I concluded that that doesn’t work for me at the moment. It’s too incompatible with previous node groups I’ve made, and I’d like to be able to reuse them as much as possible. It’s also too much work to make that into a generally accurate silhouette. The trouble with the Fresnel method, on the other hand, is that it starts out too accurate and has to be manually modified.

My current stage of the shader, part-way through modification.

I could use a simpler mesh and the Data Transfer modifier with weights to give a simpler silhouette, but it increases the amount of work to make a character, or other object a default Fresnel edge won’t work well on. I’ll continue to look for methods to improve it.