Call of Pripyat takes you once again into the vicinity of the Chernobyl nuclear reactor that exploded in 1986. This so-called "Zone" is a highly contaminated area cordoned off by the military and now is combed through by the so-called stalkers, modern fortune hunters, in search of unique artifacts. In the role of Agent Alexander Degtyarev, who is dressed up as stalker, you have to investigate the mysterious disappearance of five military helicopters and thereby stand one’s ground against the various stalker groups.
A tutorial I wrote originally to help out another TZP and The MISERY dev group member in texturing, namely "_xXxTWiST3DxXx_", but I decided to also post it here.
Posted by [TZP]LoNer1 on Jun 20th, 2013
- Original PM: Copy / Pasted the first part as well -
LoNer1 wrote:Hey man,
You wanted a tutorial, so here it is! I included images explaining what I mean with some things / techniques. I also provided links, (re)sources and 3rd part tutorials (hosted on other sites) I recommend you to read this a couple times through. Not everything will stick after 1 read. Also visit the links provided often when creating skins
I was like you a short period ago, an experienced texture artist, but I was lacking in some departments. And after going to polycount, NGHS and asking around on the internet to some of the amazing texture artist we all know out there (Hans / Millenia, The Snake, racer445, nicolai, vladimir etc.) I filled up the gaps a bit. I don't want to say I'm on a next level now, that we differ, but I want to tell you that after reading and watching countless video's explaining the nature of textures and how you should have a steady workflow (which I personally lacked) I had something to improve upon, and expand upon
Also, asking around to various artist helped me create my own style, which is crucial for keeping "The Flame Burning" inside, the will or desire to go on with what you're working on. Trust me when I say (from personal experience) that trying to copy someone's style wont give you any satisfaction, no, it's creating something unique you can brand as your own that gives you that feeling. I've had it after each and every skin I did the last couple of months, and trust me, I did A LOT of skins. I'm just not someone who constantly updates his moddb profile with progress, only some 'last development' / 'recent' shots in-game.
Also, I'm not a texture artist only. When I did the LR300 skin, I told myself it wasn't enough. What I do, when I create a skin now is; Get the material for the weapon set up in my mind, what material do I want it to look like?; Next up, create the skin and finalize it, and after this, I create custom sounds which fit the skin material. I wont leave a plastic reload sound on a weapon which now looks like metal, no, I create a totally new, correct OGG commented metal reload sound. This, Twist, is what people in the game industry want today. Someone who doesn't specialize in one thing and that thing only. How many modellers are there around, who don't just create models? They also: texture the model, sometimes if applicable rig the model, optionally create sounds for it and some are able to import it into any engine, with their custom assets and levels. That's almost a whole AAA team. Keep that in mind It's always fun expanding your horizon!
Well, enough blabbering, without further a-do, let's start the learning process shall we?
This tutorial will provide you with the basics of texture-creation for next-gen games / CG / portfolio pieces featuring ultra quality textures. Mind that 'ultra quality' doesn't always mean bigger textures. There are many ways to optimize your textures for a specific scene, game or environment. This tutorial has been adjusted to provide you with both the basics of texturing for any game or cg-work, but also the basics of texturing for the S.T.A.L.K.E.R. series, which use some unique features no other engines have used IIRC.
You will need some things to get started with this tut:
- Adobe CSx (x = any version, 3.0 or higher) w/ Nvidia Normalmap Plugin
- PaintDotNet 3.5.10* (or higher)
*I have a set of ready to use plugins installed which always come in handy, let me know in the comments if you want it uploaded and ill update the tutorial!
- Any kind of mesh-viewer, preferably with a reload-texture kind of interface which auto-updates the skin in the viewer once upon a save. I advise 'MeshView' or Milkshape3D.
- Any kind of texture-viewer. Preferably one that auto updates in real time, or just when reloading the texture. I advise CrazyBump, it's a magnificent program!
Defining the material used in the texture is key to achieving the feel you want the texture to have in your mind or are trying to recreate. You need to learn the difference between RAW-surface textures and Smooth-surface textures. You should also study photo's, learning how various things look in real life. Simple things like this, just looking at the ground below you, the stones of the garages nearby or any surface, will learn you how things look in real life. You will develop an eye for these kind of things, so you can easily correct artefacts in your skins
You will learn how to define your materials in this chapter.
This subchapter will focus on the real life situations some materials are used in and how the 'change' over time, like rust, corrosion, tear, desaturation, biological changes etc. So you can create realistic skins, which will look more realistic than a weapon texture with a rust filter applied to it, or a texture overlay technique (which most beginning texture artist use [I was guilty of this])
Defining your material is sometimes hard to achieve because of the curcomstances they're in. Creating a metal base for something is not an easy task from scratch, you need to know what kind of metal you want, brushed metal, corroded metal, metal with rust etc. So, you need to read this next article, which will explain most of it in detail:
After reading the above article you know how to define your material. This is a test which will test your current skills. Only with trial and error you'll get the result you want.
Create a metal texture with corroded and rusted sides. Make it look like it's been exposed to various natural elements, like rain, cold, warmth and make it 512x512. It doesn't have to be tileable, but that's a plus if you know how to do that.
Try and do It in one run. If not, start over again. Just start with a base texture and modify it. Keep going till you have the desired effect. You may always use reference images to get what you want, but dont cut out parts of an external texture. The goal here is that you try to achieve it by yourself and have the knowledge of how to do it.
(You dont have to share the result, but when you do, expect 'some' feedback)
I did it with this particular silencer, you might recognise it:
As you can see, it's quite a different texture and base from the one (vanilla STALKER) above it, and this all has been created from the above image! You can upscale the texture, apply a vertical blur filter to it with the distance of 200, multiply that layer and you have your 1:1 base!
I've also started another project for BF2, I am busy with some textures for a friend of mine, ProfKiller_LT. You see the rust and corroded metal return in this Screen here:
Adding detail to material these days is not done in the diffuse, but in the specular map. This can be done in any way, from adding external texture overlays to creating scratches by yourself with a 1px/2px brush tool. This is the best way is to highlight the details of a weapon in a newer engine, but we are going to do something different for the Xray engine.
As we don't have a specular map, only a shadowmap (IIRC a cavity or AOmap) and inverted RGB-normalmap (not a bumb map at all) we are going to practise a new technique I created for the S.T.A.L.K.E.R. series. I don't take credit for this, as many people could have done it before me, but I call it Alpha Transparent Specular Mapping. The Xray determines specularity on base of the transparency in the diffuse map, with the shadow maps projected on top of that. If your shadow map is incorrect and your diffuse is alpha channeled, expect some really, really weird artefacts! But if your shadow is good, matches your normal, and you applied the above mentioned technique, you will see an amazing result in-game.
How to apply ATSM? Well, there are various techniques. (*This is the last step in texturing! you apply this AFTER flattening the image and creating normals!)
The magic wand tool; select the parts you want to have a little bit of gloss in-game (metal parts / scope lenses / screws etc.) and cut them into another layer, and make that layer transparent ranging from 255 to 0, where 0 is totally transparent. DO KNOW that 0 - 128 transparency means a lightbeam in your hands in-game with a vanilla shadow map. That's REALLY reflective. I'd suggest going from 255 to around 215 for metal parts. I created an image below showing how i layered this technique for a really nice effect. (Yes, it takes some time, but creating a realistic skin will take some time)
The pencil tool; This one is a bit time consuming, but it will give you almost total controll over what you want to be transparent. The 3rd technique is the best. With this one you use the pencil tool with a white color to create 'scratches' and tear on the skin. Then, when you're done, select all the white, go a layer down to your finished diffuse texture, cut it out of the diffuse and copy it to the pencil layer. Now, it will look like a normal skin again, but there's one difference. And that's the fact that your details (scratches etc.) are in a separate layer. Now, make that layer transparent. Try to not create a big difference in transparency (image below)
(Pencil) Blocking out; This technique takes a lot of time, layers and CPU and GPU power. But a decent GTX260 Black Edition will be more then enough to do this (I speak from personal experience). Use the pencil tool to do almost the same like the above, but use different colors. Try and make a transperency ramp, which means that the transparent layers go down in an univorm way (minus x with each layer) so, if you want the diffuse to be 255 and the lowest transparency 220, you create 7 layers that go down 5 transparency each time for every 1/2/3/4 pixel(s). This sounds like rocket science, but it really isnt. See the image below for reference
After you're done using any of the above techniques, flatten the image and you're done! Do mind that this is the LAST thing you need to do for skins in S.T.A.L.K.E.R. - NEVER create normals of alpha textured diffuses. This will result in weird normal maps.
Keeping image size in mind
Appropriate Diffuse Weapon skin for S.T.A.L.K.E.R.:
(Pistol texture) 1024x1024 or preferably 512x512
(Full weapon texture) 2048x2048
(Partial weapon texture featuring only things like grips or stocks) 2048x512
(Scopes, as you want less stretching on the scope) 2048x1024
Appropriate Normal map S.T.A.L.K.E.R.:
(Pistol texture) 1024x1024 w/ 1024 shadow maps (Recommended to use with 512x512 diffuses)
(Full weapon texture) 2048x2048 w/ 1024x1024 shadow maps
(Partial weapon texture featuring only things like grips or stocks) 1024x512 w/ 1024x512 shadow maps
(Scopes, as you want less stretching on the scope) 1024x512 w/ 1024x512 shadow maps
*Misc. items like the Binocs are also recommended to have 1024x1024 maps, because they're used often. But things like the bolt, vog25 and grenades are recommended to have either 256x256 or 512x512 maps w/ 512/256 normals and shadows.
I suggest you to create skins accordingly to these settings. S.T.A.L.K.E.R. is CPU intensive, not GPU. If it was the other way around, you could easily create 2k x 2k normals and shadow maps, because the new generation GPU's can easily handle 8192x8192 maps. (I'm running a crysis mod with skins at this dimension) But stalker won't handle these sizes, especially not for skins as 10 ak74u's with texture sizes of 2048x2048 and normals w/ shadow maps will make your game lagg, A lot. So, you need to optimize your textures.
Keep in mind that weapons which won't get shown often can easily have the above mentioned sizes, like the Gauss gun, but giving pistols such a high res. texture is never a wise thing to do. Try to keep pistols at a small size, but give them 1:1 bump maps. AR's could easily be 2:1 OR 1:2. Creating a bigger normal will always compliment the gun, no matter the texture. If it's a difference of 1:2 it wont be that bad. (talking 1024px² diff. and 2048px² normal, not 512px² to 1024px²)
Like we all know, upsizing skins wont ever do the skin good. It will make it 2 times more blurry with every resize. But, upsizing does offer a good base for blocking out the skins.
What I mean:
See how they look alike, But mine is still higher quality? That's done by blocking out the various parts of the skin and start building upon them from the blocks. You highlight certain parts of a skin with a color, for instance, the grip with purple (after the resize ofc.) and everything attached to the grip or that's part of the grip gets the same color. Same goes for the slide, everything part of the slide gets the same color as the slide itself. That's called blocking out, and you do this in serparate layers. You should also know to name your layers, so when you want to disable something you know what to disable. Trust me, when making my HD G36 skin (136 layers) it was a pain to search for the things i wanted to disable I didn't name them all. Always name your layers. It takes little time and saves you a lot for in the future. (for this you want to use a mesh viewer to be totally sure you got everything right)
One thing, see how everything here alignes to each other? You use upsizing to create a base for your skin, do a blockout and then have the base of your new skin set up. Next up is determining the material, setting it up and searching for references. Start texturing the skin and after you're done apply the ATSM.
Moving on, next subject:
When you're totally done with the diffuse (without ATSM), you are going to create a normal map from this skin.
Now, if you're familliar with the normals in stalker, you know they differ from normals used in newer engine's and 3D renders. We need to invert the channels and add another blue channel. I've seen a lot of handy tutorials for this, so here you go:
and a video tutorial:
Well that was it, the tutorial. Read it through another time and keep expanding upon your skills. Try to go to polycount to get some feedback on your textures etc. don't be surprised if racer445 himself critiques your skins. He and Mill did for me, and while they were extremely honest, they helped me a lot. Both of them are really experienced texture artists and anyone can learn a lot from them
External tutorials links: