26.6.13

Working on a new portfolio website. Just placeholder images just now, but I've got the layout sorted, including responsive design etc. so it will work on tablets, smartphones etc. pretty well. The first link works. Should hopefully have some decent content up in the next few days. Also, my shotgun model has some animations, courtesy of Sinistereffect and Theanimatedflame, including a compile for cs:s.

19.6.13

I took twenty minutes to update this old pistol texture. The old version had a really bright diffuse because I had no idea how to do chrome or bright metal.

17.6.13


3d Preview here.

Download here.

Texture sources here.

16.6.13

Quickly remade this shotgun for someone who wanted it on GB. Upload soon.

13.6.13

Just to illustrate the differences between baking methods. Tangent space map is baked as nicely as possible, hard UV edges inc. padding, extra uv islands to help smooth tougher areas, some support loops. As you can see, the object space bake is near perfect. The tangent space bake is good, but has less consistent lighting, and waviness problems on the curve. (This is probably from UV distortion; it's mapped as if there was no curve). The handplane'd version gets rid of this waviness, but still isn't quite as good as the OS bake.


Album

So, made the gloss map, and added some small details to the normal map. I added some bumpy varnish detail to the wood, as well as some woodgrain the the wee bits of exposed wood there, as well as bumping in some of the scratches. For the metal, I did the same kind of thing, but less pronounced. Usually I wouldn't put metal details in the normal map, but in this case it helps break up the smoothing errors brought on by the dimple in the lower receiver, although happily they're not particularly pronounced anyway. I wanted to add details to the wood because large, flat or gently curved surfaces like the stock don't tend to normal map that well (in my experience) because the gradients suffer quite badly from texture compression, even simply when saved as 8 bit .tga straight from xnormal, instead of saving to 16 bit .tif and converting to 8 bit later. Adding some small details to these areas helps to break up the gradients and force the compression to play nice with my texture.

This one still has the DDo textures on the magazine, so that's why the ddo logo is there. When I update those I'll update the render too.

Anyhoo, once this is out of the way I'm going to go back and finish up an environment I started a while ago. Really have to learn to finish things that I start.

12.6.13




So I did this texture by hand in gimp, tonight. The mag is the old DDo texture. Ddo crashes too much to be useful for now. E.g, I had a texture for the whole asset made in Ddo, but some bug means that rendering the project doesn't respect the base texture you imported, meaning big chunks of the texture didn't render out.

I may re-uv to do mirroring in the UV's, I didn't do any because I wanted to use OS norms but that didn't work out, so I might just re-uv it and bake these textures to the new model.

 Anyhoo, I tried not to go too crazy with the wear/dirt on this texture, whilst still making a bit "lived in". I like the close control I get making textures by hand, but I can see how DDo would come into play for less important props, or for getting a base to add to. If it was more stable and had a wider range of presets (wood being conspicuously missing) it might even work for hero assets.

9.6.13

Soldier11 released his animations of my ar15 model. They're pretty badass.




8.6.13

Forgot to post this before. I made a really quick blog/showoff page for our Dare game from last august.
 http://gastankgames.blogspot.co.uk/

It's a bit low on content because I don't have the project files, but it's got the trailer video and a couple of character models on there.
Baked out Tangent Space normals to make this bitch actually work in engine. Mainly it's because I wanted to try out Ddo, which only uses the Object Space normals for directional details.
 
So, the bakes came out ok, still not as good as the OS ones tho.
These textures are created in Ddo, other than the wood base, which is just a stripy texture projected downwards onto an edited version of the stock, then baked out and plugged into the base texture slot for Ddo. I didn't take the textures very far in Ddo because I had a lot of problems with it crashing, and the learning process is pretty confusing. However, I think I have a handle on it now, and will probably redo them when I get a chance, now that I have a better handle on the program. For example, I want to add more markings and other custom details inside DDo, overall add more dirt and grunge, especially on the stock,  as well as including the wood base in the specular texture.

1.6.13

Refuckulated the ak again. Added/changed details to chunkify it all a bit more. It is now pretty innacurate to the real thing, but looks good from FPV, which is more important. Constantly learning not to include stupid details that don't help, and to emphasise the details that *do* matter. I just can't learn that lesson enough.
Also, tried using Object Space normals for the bake. Turns out, they are rrrrrridiculously easy to bake well compared to tangent space normals. No need for support edges, hard edges on uv seams or any of the other kerfuffery usually required to get half decent smoothing. Although it does still require the use of a cage to avoid seams, but that's not really a big deal.
This version doesn't even have a decent uv map. Just seams placed and unwrapped, no fixing stuff into straight lines, scaling or packing done yet.
As you can see, there are 0 smoothing errors which is A: a first and B: fucking awesome.


So, the upsides and downsides to object space normals.

Upsides: Work fucking perfectly. Easy to make, works first time every time. No tangent basis trickery, it will look the same no matter the engine it's rendered in.

Downsides: Does not like mirrored UV's. Does not like animation/deformation. Harder to compress, as it needs 3 channels instead of 2.  Not tileable, mesh specific. A bunch of engines don't explicitly support OS normals


So to address those downsides: It turns out mirroring and deformation *are* possible after all. Most of this info I gleaned from the polycount wiki so it's not exactly original research :)
Mirrored OS maps are possible with proper shaders, and are still less resource intensive than tangent space normals.
Deformation is certainly possible with similar shader trickery. Apparently Battlefield: Vietnam used OS normals for their characters so it must work.

As for tiling the texture? Don't bother. Use tangent space normals for that :D To use that ak for an example, there would never be a good reason to tile that texture. As such, there is no reason to assume that you couldn't use OS maps for props etc. and TS maps for environment type textures that you expect to tile.
One example where this would be a problem would be overlaying a tiling texture on a OS mapped object. For example, I have a (terrible, old) UDK shader designed to simulate running water on an object, specifically an FPS weapon in the rain. With TS maps this is not a huge problem, but I can imagine trying to combine a TS and an OS map in realtime would be quite a formidable task.

Regarding compression: Object space normals need all three RGB channels, whereas Tangent Space normals really don't need the blue channel, which can be reconstituted in the shader. This means that it is easier to compress a TS normal map, as there is less to compress in the first place. However, in my experience compressing normal maps almost always gives a terrible result anyway. Because of the way TS normals use gradients to cancel out the lowpoly smoothing, when they are compressed or scaled down they get worse and worse at dealing with the lowpoly smoothing. With Object space maps, however, because there are no gradients as such, and flat surfaces actually use flat colours, scaling or compressing the texture has a much smaller effect on the overall model smoothing. So the issue boils down to whether you can spare the memory to hold a smaller, uncompressed Object space map, or a larger, compressed Tangent space map. With ever increasing memory available (8GB in the PS4/XBONE!!) and the other performance bonuses of Object space maps, it really seems like OS is the way to go.

So, overall, the only real drawback to using OS normals is.... that most engines don't support it. UDK, Source, CryEngine, Unity- none of these have built in support for Object space normals. So why is that? I can only assume that I am missing something major and that there is some other advantage to TS normals.

Sorry for the wall of text.