I’m curious about hearing what you guys think is the best technical solutions for dealing with in-game roads.
Some issues that I want to make easier or get rid of entirely:
a) Artist/level designer having to create road meshes manually
b) Artist/level designer having to create road intersection meshes - and UV’s manually (T, X and Y -crossings)
c) Artist having to create many different road textures for blending
Road making in our current game has been fucking BAD. In a way I’m glad for getting professional insight into this issue - learning not to take things for granted. But it’s also embarassing because I know there are much clever ways to deal with it than we do now.
What we have now:
Many different kind of materials/(textures), Meshes with lots of splits to allow intersections (T, X and Y -crossing), Artists having to spend A LOT of time tweaking UV’s in intersections, Artists having to “hide away” seams with alpha planes.
What I’ve whined about for the coders to implement:
Splatmapping - so we can reduce the idiotic amount of materials used, but also so that we can cut down on the time investment for creating environments.
What I’m still a bit clueless about:
How to best get a nice workflow for the artists (me and this other guy) and our level designer, when it comes to the creation of roads in our environments: and especially how to deal with intersections.
I know what I want but I don’t understand the technical aspects of it fully. In some level editors, you draw a road spline by placing out points. Then the engine automagicly creates an alpha plane shaped like that spline, maps it’s UV’s so that they are straight (tiling either along U or V) and then use either an alpha channel, vertex alpha or splatmapping to blend the road onto the underlying surface.
All of this I can make in Maya. I just create an EP curve, a linear NURBS curve (rectangle), extrude it along the curve, convert to polygons. But here appears the first problem: aligning or “sewing” the road to the underlying environment mesh. This isn’t so problematic on flat surfaces where you can just make a boolean union but say you want to create a road in a mountain range and it becomes a lot harder. After that phase is done, I can unfold the road part along one axis only with my UV Editor, and I end up with a result like this:
http://img228.imageshack.us/img228/6521/splatmaproadtest.jpg
(this is a test scene so don’t bash down on my graphics Anyway, what you have here is a 2D plane (4 verts) with a layered shader assigned to it. Under the hood of the LS you have a splatmapping network consisting of 4 different materials and a splatmap. The asphalt part is a separate mesh for now, and uses a separate material that does not belong to the splatmapping network.)
And yea I’m still far from happy at this point. Problems as I see it:
-Blending the road with the rest of the world. Sure it can be done with vertex alpha but we wanna avoid that because it’s expensive, and it gives us problems when doing lightmaps. One solution would be to incorporate the asphalt in the splatmap network and just “paint out” the road on the splatmap texture inside photoshop. But then how do you make it so that the road is straight? Multiple UV sets? Ok, but then how do you set it up in Maya so you BOTH get the road straight AND blending with the other materials in the network? Afaik you can only have ONE primary UV-map (that the viewport displays) at a time.
-Blending the road with other roads, creating T, X and Y-crossings. This is something I don’t even know how to fix and make smooth even if everything above was implemented.
Thoughts?
EDIT: Also, I forgot to add this: We are a mobile game developer so our tech isn’t exactly high-end. We make games for tablets and smartphones so any high-end solutions are out of the question unfortunatly Splatmapping seems like something we can “afford” though - at least that’s the impression I get…