Hey Polycount! I'm finally less than two months away from graduating with my degree in visual communication arts, and I'm ready to get back into improving my 3D work. I'll be buying up a lot of software before I graduate, but for now I decided to work on creating my first tree.
I chose the Green Ash tree which is found all over my hometown. I wasn't able to find an eye-catching image to source from, so I used a good number of images as inspiration. I also studied Michael Betke's low-poly trees as I've always been impressed with his vegetation.
I'm looking for tips from those of you that are much more experienced with vegetation than I am. What did I do wrong, and what can I improve on?
Here's what I have:
The bark is 90% photo sourced, but a lot of the branches/leaves are illustrated.
Normal, diffuse, alpha
Normal, diffuse, spec
All of the background vegetation (pine trees, etc) were created by Michael Betke.
I also recorded a quick video to show the animation. It's all done with a Leadwerks vertex shader on the branch texture.
[ame]
http://www.youtube.com/watch?v=vQzxO0IXzuM[/ame]
Replies
1. Add a bit more mesh detail at the base of the tree where it plops into the ground. Flare it a bit more and add some hints of a root structure. Just break up the cylindrical silhouette of the trunk a bit. We call it popcicle syndrome.
It may in fact be how that tree is (cylindrical) in real life, but in games sometimes you have to stretch the truth for things to look believable.
2. Add some nice color variation in the leaf texture. Just drop some red/browns/purples/yellows etc. over the top and apply a blur. Then switch it to a color overlay and drop the opacity down.
3. Add a few more larger branches in the canopy.
4. As anyone knows trees need LODs! Create a version of this tree that is under 1k tris meant to be viewed at far distances.
Good job!
Great tips vcortis!
I started off by adding more color (yellows, browns, and purples) to my leaves:
I then cleaned up the UV mapping on my tree trunks, added a few smaller branches and flared out the base of the tree:
Here a few shots of the updated package in-game:
Next up: LODs!
@frell, I did place all of these by hand, but I kept wondering... there must be a more efficient way. I'm not sure though.
@marq4porsche - I can remove edge loops by just selecting them and hitting Backspace, correct? Is there a way to lower the amount of loops without re-drawing the shape?
As far as the shape of the tree goes, yes it is kinda skinny, but this was by design. I'm planning on making a few more of these, and one of the next ones will be more "full".
The LODs are going well, and once they're finished I'm going to try and get this tree working with the Leadwerks vegetation system. That way, billboards will be automatically created and I can "paint" a full forest.
marq4porsche - Yeah, there is a Collapse tool in Max.
Eventually I'll get it down to a 3-sided cylinder at the top.
I also took a blind stab at tweaking the normals for the leaves like Super Happy Cow suggested. The results look good in the Crazy Bump preview window, but it isn't really noticeable in-game. I even maxed out the intensity of the map... I wonder if this is just an issue with the Leadwerks "mesh_diffuse_bumpmap_alphatest.frag" shader? Perhaps the alpha testing is over-powering the normal bump?
I'm going to be making a tree soon myself...I'll use this as reference on building it.
Thank you for sharing!
I've made improvements to the specular map and the overall material for the leaves (it wasn't even loading the spec in at all before). I'll post more on that when I make more progress, but for now here's a quick blurb I shared over on the Leadwerks forums about how I painted the tree branches:
I actually drew the base of the branches using the Pen tool in Photoshop and stroke'd it with a hard brush. I then pinched the ends of the branches and added noise and an artistic filter:
From there I added a photo-sourced bark texture overlay and tweaked it:
Finally I used some selection set trickery to shade just the outer edges of the branches to give them some depth/roundness:
Your tree is looking nice though. Much better than my first tree was. If your engine supports Explicit Vertex Normals you may want to look into the Max script SlideNormalThief. There's a thread about it somewhere here on Polycount that shouldn't be too hard to find and there's an article about it on the Polycount Wiki here.
I've also been working on some additional models (the largest tree is not yet finished):
Wires for the medium tree:
Wires for the small tree:
Has anyone had trouble getting Slide's Normal Thief to work? The original works ok in Max 2009/2012, but Slide's version does not show up at all when I load the script in 2009 or 2012.
Also, am I doing this right? I used a cube as my reference object because I wasn't sure what I needed to use. The results were... well, nothing really changed in game, but you can see it in Max here:
just putting my two cents. but why dont you show some roots? the way its attached to the ground right now seems as if its gonna fall at my head :P
stick some pieces of root from the floor around the main piece. take a look at some reference pics, and consider that your tree is quite high; the higher the tree, the thicker/bigger/deeper the roots.
will only work in engine if the engine supports custom normals.
nice progress overall
Also, fantastic job! Makes me want to make my first tree.
I also noticed a nasty texture alpha issue where the thin tree branches were being made transparent because of how thin their alpha was. I used a refined selection set in Photoshop to widen the alpha on the branches to great effect:
Too much foliage in your texture, leaf density is making your alpha cards very obvious.
Also it seems your tree is very generic looking in the branches and silhouette. Maybe you should copy some refs just for branches placement.
Also, the repeating leaf pattern in your texture could be replaced by more various placements giving more variety from up close (tho this works okay atm).