I've been a long term lurker at polycount and I've finally begun to do a mass portfolio overhaul to push myself into the Games Industry. I'm using this thread as a way of documenting my progress and revealing some of my workflow in the hope that I inspire someone, like you all have inspired me
My History:
I've worked with CryEngine since the PreSDK days of CE2 (2007). I've been a member of
INK for 2 years on/off and i'm currently helping the guys at
Traction Wars out with a few assets for a WW2 Portfolio piece i'm working on. I've been modding since 2002 starting off on Counterstrike before moving over to Neverwinter Nights, Battlefield 2 and then to CryEngine. I've always used 3dsmax and for the past two years i've been using Mudbox for HP meshes.
My Plans:
I'll be creating small diorama pieces for my portfolio, showcasing my assets. Its my intention to create a WW2 diorama and a modern day street in Rome. While creating the above dioramas i'll be producing small blogs that explain my workflow with renders/screenshots. I welcome criticism and if at any point you'd like me to expand my explanations then feel free to ask.
Blog List:
Here is a list of my blog entries:
Replies
For the past two weeks i've been working on vegetation. A slow process considering i'm overhauling everything! But I thought i'd start on the obvious and make some new grass.
Step 1: The workflow for making my grass is a little time consuming initially. You start off by making a simple grass blade (I made 3 height variations). You then draw some splines to create different blade shapes and then applying a pathdeform you can make realistic looking highpoly grass blades pretty fast. The end result being top left in the above image.
Step 2: Next I arranged the grass blades into an arrangement that would work for a flat texture. Now the way i've designed my grass is to maximise its use is to allow the grass to have several unwrap layouts. Image 2 for example can be broken down into 3 grass objects, or it can use the entire grass texture as 1 longer plane. This allows me to use this grass sheet for grass patches but also small grass shrubs.
Step 3: My final step in 3ds is to add colour gradients to each blade. I made 6 materials of different hues and colours, this reduces the workflow steps in photoshop and produces a more accurate diffuse bake. The mesh you see there is my dead grass variation, but I made several variations types allowing for more flexibility for the mapper. I bake the Diffuse, Normal and AO at 2048 and throw them into photoshop.
Step 4: The final step in photoshop is to desaturate the colours and tweak the texture. I add very subtle light/darkness to the texture and will add some dirt etc if required. I repeat the above 4 steps and fill a 1024 texture sheet with different heights and colours of grass.
Here's how the textures look ingame. To allow for better visuals I create 2 mtls and then duplicate the grass objects twice and apply a material to each. So i've made a green grass and a grey grass version. These materials can be tweaked depending on the environment/season etc so it allows plenty of variety for the mapper. I still need to create the grass shrubs from my texture sheet!
Here's how the above grass objects look when you point the camera down to the ground. Flowers/plants are required to add variety, but i'm satisfied with the end look. The polys are a little steep, Crysis 1 grass patches were as high as 1600 polys! I will probably trim the polycount down a little bit once I make my final QC sweep.
So having got some nice highpoly grass blades, the next step was to make a custom terrain texture which the grass objects would blend nicely on, so here's the steps I took to create the grass from 3ds to the sandbox.
Step1: Having spent the time to make the highpoly grass for my objects, I simply took the grass tufts I made and produced a few more variations. This would allow me to create a grass patch that I would then use for to form the actual texture.
Step2: I then moved the grass tufts around to form a dense patch of grass, this took a bit of time as I wanted to ensure that the AO/Normal would bake accurately so I made sure that no grass blades passed through one another.
Step3: Using a square plane as a base, I carefully moved the grass blades around the perimeter of the plane, copying the grass to the parallel side of the plane ensuring that when baked the grass would tile. A handy tip is to place one grass object in one corner, then instance that grass to each corner. Once that's done is just a case of filling in the left/top of the plane and instancing to the right/bottom. If further explanation is required, i'll add more depth to this stage!
Step4: With the frame done, I then fill in the center of the plane with more grass, I try to vary it as much as possible with different scales and rotation directions. Once its finished I then make sure I then bake the grass from above, producing an AO/Diffuse/Normal and Heightmap. I'd advise adding a dirt texture to the plane as you then don't need to texture the dirt in photoshop, its been done for you.
Here's how the bakes turned out. CE3 requires all terrain textures to be very desaturated to allow for the terrain layer colour to project through. It took an hour or two to get the mtl working as I intended. Trying to get the Detail and Distance textures to blend seamlessly takes some time!
Finally here's how the finished texture looks ingame alongside a temp dirt texture.
Here's a quick shot I threw together of the assets from Blog #1 and #2 in the same scene with a Crytek River Tree (will be replaced).
But I have identified a few gaps in blog entry 1:
1 could you please show your final texture
2 could you show possibly some uv layout
3 could you show some wires for those patches of grass
Because I get all this... but I struggle to get nice natural looking grass, especially from above using this method most of the time.
Thanks for reading, hoping you will add the above or post it in Entry 3
Then some critique or better material for thought:
The grass texture in blog entry 2 looks to me a bit blotchy, expecially once you see it tiling. This is because it is a high detail texture with less thought going in about medium and long range detail like slightly offset colors, longer and shorter grass, how the shadows fall between the shrubs.
I find that 2 (possibly 3) different textures that blend (closeby, far away and in between) carry the grass feel a lot better. That way you have control about what amount of detail is where and you can play with different colors as some sort of noise overlay, this makes the grass a lot less repetitive and a bit softer at larger distances.
Also if possible try to get some sort of blending mask for your ground/grass blending... that usually makes everything a bit more natural looking.
Something that i think you should adress is your top down texture though. You got some very defined patterns in there. Maybe something that's not showing in the final version, but you can clearly tell from the WIPs.
Btw, 1k^ some some grass patches? Sounds a bit high
Looking forward for future tutorials
Btw really nice job. I am doing some vegetation myself. Hopefully I can learn a thing or two here.
Thanks.
Thanks Joopson, didn't know about the mip mapping. Which is important for texturing in engine.
Thanks for the responses! I'm currently playing around with some pretty cool ideas in CE3 at the moment. I'll make sure my next blog entry goes into alot of depth (it'll need to).
As a teaser, here's a quick texture test of an Ash Branch in CE3.
I'll answer all of your questions and expand on my first 2 blogs this weekend. Certainly helps my motivation to see all these replies