Saturday, May 23, 2015

WIP: Aphreal Texturing 2

Greetings and salutations. Sorry about the lack of posts, I've been quite busy recently. However, I do have work to show which consists of improving the textures on Aphrael. Lets go ahead and look at a full body shot so we can see the overall change in appearance from last time I posted.

Improved texture on Aphrael.
The materials are coming out much better than they have before. The satin is looking really nice, the hose actually now looks like hose and the hair... THE HAIR!

New and improved hair!

Another angle of the new hair.
The hair is amazing now. I learned how to do this hair by looking at a material set up posted on the forum here. I then tweaked a few values and added a few other things and I now have decent looking hair. However, the hair is not the only thing that is starting to look nice. Take a look at where tiling can take you in Unreal Engine 4:

A close look at the tiling textures for the jacket and leather.
Those textures, they look hi-res but they're really not. They are 256x256 normal maps. I have the material set up so that it tiles in the u and v directions of the UV map, creating the illusion of thread or texture roughness on the leather. The sheen on the satin is only possible because instead of using a diffuse material, I used a metallic material instead. And all of this controlled by RGB masks.

So the textures are coming out quite well. There is still a lot work to be done and I definitely need these textures polished up so that they will really look good. I hope to display that level of quality soon but for now I leave you all with shots of Aphrael's upper body and her legs to show off what UE4 can do and how it is helping get nice textures for the character. Enjoy!

Upper body.


Aphrael's legs.


Monday, May 11, 2015

WIP: Aphrael Texturing 1

Greetings and salutations! Today I want to show what I have so far in regards to texturing Aphrael so far. It is coming out okay but a lot of work still needs to be done in order for the model to look good. Here is what I have so far:

Full body test in Unreal Engine 4.

Face test in Unreal Engine 4.
I mainly only have diffuse maps going at the moment except for the hair, but I will get into that in a little bit. So far the colors are reading correctly so now I have to make the appropriate specular and normal maps to bring out the textures of the materials. The UV sets are all working correctly thus this will allow me to use tiling normals to drive the actual normals through RGB masks. I also need to make a subsurface map for the Aphrael's skin even though the current vector set up I have is doing pretty well by itself. You can see it in the fingers here:

Some subsurface scattering in Unreal Engine 4.
The main problem I am having right now is the hair. The hair looks pretty bad and I will more than likely re-do it. While trying to render hair in UE4, I discovered a major flaw with the engine: it has translucency sorting errors! WTF!? Most modern engines don't have this problem at this point but for some reason UE4 has sorting problems when dealing with translucent objects. I will show you what I mean with a render using a base translucency shader:


Sorting errors in UE4.
Looks horrible doesn't it? If you still don't understand what is going on, let me a explain a bit. When rendering out translucent objects, not having the right algorithm in the software can cause the renderer to be confused on which translucent object to render in front and which one to render in back. The result of this causes a sorting error because the engine doesn't know which objects to render in which order. Hence the mess above. I discovered this problem in Maya and mental ray and I despaired to encounter this in UE4. Sorting errors are very difficult to fix. Lucky for me, after a bit of research, I found a work around called dithering.

Usually when one thinks of dithering, they think of a shading technique in 2D space such as the choppy shading in animated GIFs. However, in this case, the principle behind this is applied in 3D space to create the illusion of soft edges when using UE4's opacity mask. Why the opacity mask? Normally it renders hard edges from the alpha channel because it can only read 0 and 1 and not everything in between like the translucency channel can. However, using dithering and then a blurring node in the opacity mask can help smooth out the edges and hence no need to worry about a sorting error since the opacity mask doesn't use translucency. So what does that mean for the hair? Well now I don't have the translucency mess that I had before. Take a look:

Using blurred dithering for in the Opacity Mask channel.
Now that I understand what is going on with the render, I can attempt to fix the issue when I re-model the hair. Hopefully when I post about Aphrael again, the hair will be much improved. We'll see!

Wednesday, May 6, 2015

Disgusting.

Greetings and salutations. I want everyone, especially men, to read this article. You can find it here. Come back when you are done.

Stuff like what is described in this article is horrible and makes me angry and sad. In the U.S. alone from what I hear (I don't remember the source unfortunately so I will have to look it up), one in two are sexually harassed at one point or another in their lives. That is fifty percent of all women in this country. For men, it is one in three, or thirty-three percent of all men, a far lower but still disturbing statistic.

My concern at the moment is for women. I remember back in the past some men asking me why I do not date or why do I not flirt, etc. This article is one reason why. So I don't seem like an animal, a creep, a pervert. Because I am none of those. I am a man, a human who doesn't believe people are animals. Even when people act like animals. To me, the people who act like animals bring themselves down. Why do that when you can be better? I will never know nor do I care to know. All I know is that it isn't right. Women are not objects for men to use as they please. They too are human, not some animal to be used. Look up the word sexual dimorphism if you are having a hard time thinking men and women are both human. After researching that and you are still having a hard time viewing women as humans, then get out of here. I don't want to associate with beings that are less than animals.

My rules for myself when dealing with women? Do not look. Do not touch. Do not speak unless spoken too. The exception is if you absolutely must speak to them for a legitimate reason like if they are a cashier or you have a work related question for a female co-worker. Otherwise, I stay away. I don't want to be seen as an animal. Because that's what men are who behave in the type of behavior described in the article. They are animals that need to be put down forever. They are less than animals actually and don't deserve to be on this planet.

I do not consider myself a feminist, but boy do I sure understand where they are coming from.

Monday, April 27, 2015

Prism Level Update

Greetings and salutations! Today I will share a little bit of my prototype level for Prism. Here is what one area looks like in the Unreal Engine 4 editor so far:

Prism prototype level in progress.
As you can see, I finally have grass and trees and the entire map is now actually laid out. I need to cover the entire map with the grass and trees but so far it is looking good.

One of the problem areas I was having with the grass was making it look like grass. After many attempts, I finally just painted it myself by using a Photoshop filter and then masking out an initial shape for a blade of grass. Then I copied that shape and used the warp tool to create different blades and pasted them into a coherent texture I could use on a single plane. I then built up several of those planes in Maya and then imported it into Unreal. As you can see, the result is quite marvelous. However, the grass is processor heavy and it slows the editor down on more conservative systems (ones that aren't mine anyway).

Speaking of Maya, Autodesk just recently released Maya 2016. After playing around with it for quite  a bit, I must say that I am happy with the results. It is far superior over 2014 and 2015. 2014 was my go to so I think it is a big deal to find a version of Maya that is better than 2014. One of the things that I like the most is the new interface. Take a look:

The new Autodesk Maya 2016 interface.
The interface is very clean now with much more readable icons. The menus have been cleaned up from the mess that was 2015 and there are many new useful tools such as an entire sculpting shelf now. Even the UV editor has new tools and they helped me clean up some stretch issues I was having on Aphrael's face. I always had problems getting the face to have minimum stretching and now the new tools in the UV editor fixed it quite easily. I am very happy.

I am not for sure what I will post about next. Stay tuned though and sorry for the lack of posts last week.

Saturday, April 25, 2015

No Content This Week.

Greetings and salutations. I apologize for no posts during this period but I don't have new content to show just yet. Don't worry, there will be stuff for me to talk about next week. Expect a new post on this upcoming Monday. Thanks and sorry.

Friday, April 17, 2015

I'm on LinkedIn!

Greetings and salutations! I apologize, but I don't have much to talk about today. However, I did want to inform everyone that I am finally on LinkedIn! For those who don't know, LinkedIn is a professional networking site. What I mean is that it is not like Facebook where anything goes, but instead it is for professional opportunities and contacts in the business world. For anyone serious about advancing their career or need a way to start networking in a more convenient manner, check out LinkedIn. Also, if you are curious, my LinkedIn page can be found here. Have fun!

Saturday, April 11, 2015

WIP: Aphrael UV Mapping

Greetings and salutations! Today I will show off the UV maps that I just completed for Aphrael. UV mapping is one of the things I enjoy doing when building a character. In fact, I find it quite easy. For Aphrael, it probably took me only 8-9 hours UV mapping her. UV mapping can get complex, but as long as you keep track of what you are doing, you'll be fine.

Anyway so let me show the texture distribution first on the model and then I will explain what I did.

UV density in the front view.

UV density in the back view.
First I created a texture that used a multicolored tiled texture for its appearance. I assigned that to the unmapped model and then used that as a guide to eliminate stretching as much as possible. Notice how there is almost no stretching of the tiles? One of the goals of UV mapping is to keep texture stretching to a minimum. The reason for this is because it will look terrible on the model. Can you imagine seeing the texture on a shirt looking all stretched out? Yeah, that would look weird.

Another thing that I did was that I cut my seams in places where seams would naturally occur in the real world such as the seams on Aphrael's clothing or on the back of the hose she is wearing. Keeping seams at a minimal is ideal as well but when you have a complex object such as this to map out, it makes more sense to place seams where they would be at in the real world. This ups the seam count a bit but at the same time keeps the texture mapping much more manageable.

At the same time, sometimes it is better to keep specific surfaces as a continuous surface rather than cut a seam. I actually did a combination of both so as to help minimize the effect it would have on the model in Unreal Engine 4 and for consistency. So you can see how I actually set up the maps, I will show the four UV sets below.

Skin UV set.

Upper body UV set.

Lower body UV set.

Ruffles UV set.
As you can tell, I have continuous surfaces in some areas (like the skin) and full cuts in others. The full cuts are usually on the clothing where seams occur in real life. In addition, note that I have four different UV sets which normally is not ideal for game engines. The reason I have four sets is because this will allow me to maximize the texture quality in Unreal Engine 4 without compromising memory. Each set will have its own RGB mask to drive where tiling textures will occur. The texture details will then be provided by those tiled textures. Small 256x256 square texture files are a lot easier on memory than a full 2048x2048 map. The only 2048 maps that I will be using is for the skin UV set and that is because skin is unique and I need to ensure it actually looks like skin. Tiling textures do not work very well for this purpose since skin is very complex and requires time and dedication to get right.

So that is a little bit of insight into my texturing process. The next time I post about Aphrael, I will have started the actual texturing process so stay tuned!

Wednesday, April 8, 2015

WIP: Aphrael Lo-Res Model 5

Greetings and salutations! The main part of the lo-res mesh for Aphrael is complete. Secondary meshes like the teeth, hair, and accessories I will focus on after I UV map the main mesh. However, before I start UV mapping, I wanted to do a little review and show how the mesh looks. First is the whole body:

Front view.

Side view.

Back view.

As you can see, the ruffles are done. I decided to make the ruffles a floating mesh instead of simply extruding out from an edge loop. The reason for this is because it will make it easier to paint skin weights for and I don't want any t-manifold errors. What I mean by this is having a plane of faces extruded out from a single edge loop that lies along a surface, kind of like a t-shape. That would be just bad geometry.

Speaking of geometry, let's look at it in more detail.

Head geometry.
Again, I am quite happy with the results here for the head. The edge loops are clearly defined and quite clean. Placing a facial rig should not be a problem here.

The hand and sleeve ruffles.
Would you believe that the hand and ruffles are actually floating and not physically connected to the main mesh? Again, I did this to keep rigging simplified and to prevent T-manifold errors. The hand itself did not take long to do and I am happy with the results. The ruffles though took forever but that's probably because I built the geometry and shaped each vertex by hand to ensure I got it to look the way I wanted it to look.

Skirt geometry.
The same deal with the skirt. It is an actual floating geometry and not physically connected to the main body. The skirt went by a little faster because I now knew the edge flow I needed to create the ruffles and all I had to do was create one set and duplicate the others. I then fine tuned their shape around Aphrael's hips. I had to pay close attention to this because of how big her buttocks are. I didn't want any geometry intersecting except at right below the belt so it would give the illusion that it is part of the mesh.

Legs geometry.
My personal favorite, I am quite pleased with how beautiful Aphrael's legs came out. This is exactly what I was looking for. They will look even better once I bake the tangent space onto her legs from the high-res model. The shoes were probably the one area that was giving me the most problems. I ended up with a single triangle on each shoe. However, since the mesh will be triangulated anyway, it will not prove to be too much of a problem in the near future.

Next is UV mapping. UV mapping doesn't usually take me that long; however, this is probably the most complex mesh I have had to map yet so we will see what happens. UV mapping really is an art unto itself and you have to practice, practice, practice to finally get comfortable with it. I'll get more into that next time I post about Aphrael so stay tuned!

Saturday, April 4, 2015

Prototype Prism Level WIP

Greetings and salutations! Today I want to show where I have progressed in Unreal Engine 4 in regards to Prism. It has been quite difficult, but very enjoyable to say the least. I have been working hours at a time in Unreal and forgetting to eat I've been having so much fun. I got to watch that, but it is so compelling to try to fix and experiment and tinker inside the engine, seeing what works and what doesn't. Anyway, last time I was talking about the level I had gotten the level tiles sculpted. Now they are UV mapped and have the appropriate textures ready for them. I also made a tree which I will show below.

My tree in Unreal Engine 4.
The tree itself took over four hours to build, including textures and UVs. It wasn't actually that hard, just long and tedious as I built the texture maps and the branch groups. Overall, the tree consists of 20,000 triangles which is actually probably too much. However, it is the best looking tree I have ever made and I am actually quite proud of it. Usually I am terrible at doing foliage but I am getting better. This tree is proof of that.

The textures on the ground mesh was a totally different story. They were frustrating me to no end. I could not get them to look sharp, clear and good no matter what I did. I tried UV mapping the ground plane and then painting the textures directly onto the mesh in Mudbox. However, that made the textures too large and blurry. So I tried baking procedurals in Maya but that came out even worse. Finally, I got this result:

Texture detail of the ground.
So how did I pull this off? By tiling! I discovered how to tile textures in Unreal by just using three nodes in the material editor. You see, the material editor is just like the Blueprints system and the Hypershade networks in Maya so setting it up was actually quite easy once I discovered how to do this. Tutorials helped of course, but I had to figure out how to actually get all of the information I learned together into a single shader network for this to work. Here is part of the network:

Shader network for the ground textures.
The two nodes TexCoord and Tiling determine how much the texture is tiled. These are multiplied together and plugged into the UV inputs of the texture files. The red and green texture to the left is an RGB mask. It drives where the textures show up on the mesh. Red is for soil and green is for grass. I then put everything together and plug them into the output mode of the material and voila! Instant success. Using one material to drive two textures saves on memory and render times. Unreal Engine 4 can have multiple layered textures, but according to the documentation, it can be quite expensive to have several materials layered in the same network. Thus why not use one material and drive the textures with an RGB mask? Quite ingenious if you ask me. I have a similar set up for the normal maps as well and I think it has come out very nice.

The last thing I am still working on is how to use the lighting engine in Unreal. Unreal uses something called Lightmass which handles its precomputed lighting. This was quite difficult to understand and I am still struggling with the best optimized use for it. When I first baked the light maps in this sample environment, I discovered that the normal maps on the tree were looking very odd, not at all like how it looked in Maya. After doing some research and re-baking the normal maps in xNormal, I discovered it wasn't the normal maps at all, it was Lightmass! It was baking my light maps at too low a resolution. So I upped the resolution and tweaked a few other things. The results speak for themselves:

Using Lightmass to bake the shadows and textures into the environment.
The textures you see on the tree is totally driven by a normal map. However, it only looks that good because I increased the resolution of the light map on the mesh for the tree. The same with the tree's shadow on the ground. It didn't look right until I did the same thing for the ground mesh as well. Then I added a small amount of GI to bring out the color in the shadows instead of having pitch black.

I'm really excited about my progress in Unreal Engine 4 so far. Just learning how the materials and lighting work together and individually will especially help me when I get Aphrael herself into the engine. I also can't wait to see what my finished prototype level will look like. It is going to be great!

Friday, April 3, 2015

WIP: Aphrael Lo-Res Model 4

Greetings and salutations! Today I wanted to show off my progress on Aphrael. Since I've had time this week to work on her, I have made some significant progress on her. Take a look below:

Front View.

Side View.

Back View.

I believe I am at or around 5,700 polygons at this point before triangulation. Many of the remaining amount of polygons will be used for the next steps which is the ruffles for her skirt and sleeves, her hair, and Aphrael's accessories like her sword and pistol.

This is going to sound weird but one of the most difficult areas that I always have doing is a woman's crotch. The shape and how the legs connect to the pelvis along with the shape of the buttocks always throw me into a loop. I didn't have as much issues here because I have been practicing. How have I been practicing? By modeling panties! I said I was going to sound weird. I'm not a pervert however. I actually studied how panties were made along with the various types and patterns that are used. I then attempted to model them in Maya. After a few attempts, I now understand the edge flow needed to create the correct shape for the crotch and how to connect the legs and buttocks to that shape. I believe I have finally succeeded here even though the buttocks are kind of high density. That's okay though because it will make it easier to get the correct shape of Aphrael bending her legs easier when I start rigging.

Overall, I am happy with how Aphrael is coming along. I am particularly pleased with how her legs came out. It was tough getting the shape of her two jackets correct but they are there now and I am happy. I hope to finally do the ruffles and her hair next before I start UV mapping. Accessories I will do later because those will need high-poly versions as well. I will most likely use subdivision modeling for the accessories.

Next time I post, I will talk about my progress with Unreal Engine 4 and how I am using it for Prism so stay tuned!