Home Technical Talk

Technique for modelling tracks

Hiya,
I've got an interesting task upon me - I need to model a few wipeout-style tracks. I could do it via extruding a curve around a curve but that would leave me with a plain and uninteresting track.

I was hoping you guys could tell me how to repeat (and weld together) actual geometry around a curve so that I could model a part of a track with some neat holes in it and then extrude it to create a whole track out of it.

Or maybe you've got a whole different method of doing that? I'm curious to know how the pros do it.

Cheers :)

Replies

  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    Couple things you could do here:

    Well, actually before I get too far into it, what modeling program are you using? Either way, here's a few examples you could do in MAX:

    1. Extrude along curve/spline (like you said). You could do this and then edit the boring pieces afterward.

    2. Model your pieces, create your track with a spline and use the Path Deform (WSM - World Space Modifier). This will make your track piece 'stick' to the spline. I use the array tool with this to create many pieces that follow the spline.

    EDIT: disanski - I can't help it, I get bored at work and pass the time here :poly124:
  • disanski
    Options
    Offline / Send Message
    disanski polycounter lvl 14
    Hey there. You could probably try to model one part of it and then make a line representing the curve of the track and use the Path deform modifier ( this is if you are using 3ds max) and extrude this shape along the line. this will not weld them together but depending of your needs you could do this manually afterwords. Hope this helps :) and good luck

    edit: DartNater typing faster then anybody again :)
  • rumblesushi
    Options
    Offline / Send Message
    I'd also like to know how the pros go about modelling a track. Especially tiling the same texture along the entire track.

    Surprisingly, there are huge amounts of tutorials and info on character modelling/vehicle modelling etc etc, not so much on level design/track modelling.

    I'll have a play around with path deform.
  • Dandi8
    Options
    Offline / Send Message
    Well, I'm using XSI and have been using 'Extrude around curve' for my tracks.
    Anyone know the alternative to the 3dsmax path deform modifier for XSI?
    Because it seems to be a very handy tool :)
  • Mark Dygert
    Options
    Offline / Send Message
    Sounds like you're using Maya? This should help. Most of it applies to Max also.
    http://www.neilrennison.co.uk/tutorials/tir_circuit_1.html

    Max Tips: (So many ways to get this done, it really depends on the track).
    - Sweep Modifier, turn on Generate Mapping coords, adjust as needed.
    - Spline/curve, turn on generate Mapping coords and rendering, set it to rectangle.

    - Path Deform, unwrap your object before deforming. Probably create a single tile unwrap and texture it, copy it a few times welding them all together. Instance it, apply path deform to the instance, and make your changes to the flat original if you need to. Adding tiles if its too short. Twisting and and turning it with soft select on to help it conform the terrain.

    you can also us a Conform Compound Object (Max > F1 > Search). This only works on single sided geometry so you'll have to shell the road afterward.

    To get a spline to stick to uneven ground you can use a spline painter script, in graphite modeling tools or my personal favorite Neil Blevins Script.

    You can also use poly draw to paint strips of polys over the surface of another. In 2010 graphite modeling tools.
  • rumblesushi
    Options
    Offline / Send Message
    Vig, thanks for that, that tutorial seems pretty useful.

    Do you think it's still relevant enough though, given that it was in 2002? (ie Max/Maya might have significantly better tools now for the same job).

    Also, the Sweep modifier, is that for tiling the texture along the track?
  • Dandi8
    Options
    Offline / Send Message
    Sounds like you're using Maya?
    lol :P No, I don't. I use XSI.

    Thanks for the tutorial but, as I said before, it's the technique I'm already using and doesn't help the problem I'm having in any way.


    So I'm still looking for any tips on how to do the tracks, I'm mainly interested in an XSI alternative to the path deform tool described by DarthNater.
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    I have worked on several racing titles and I am working on one right now.
    use lofts for the drivable surface (which should extend past any retaining wall) and then you can do the infield and outfield geometry however you want. XSI must have some lofting features and i'm sure it can take care of the UVs for you. One thing to keep in mind is that you are going to need to make sure your textures transition well from one to the next. Most games use a slice of polys and transition textures rather than blending textures with a mask or something.


    I did this as a viewport shader test but you can get the idea.
    1.jpg
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    Anyone know the alternative to the 3dsmax path deform modifier for XSI?
    Constrain > Curve(Path).

    I'd try making a few modular pieces (textured), then constrain them and adjust the age where needed.

    If the track is large enough that it would take too long to manually duplicate these along the constraint, you could keyframe the path%age from 0-100 (make this linear) and then duplicate it along its animation by Edit>Duplicate>Duplicate From Animation. Then you'd just need to change the step size to mix them up. Weld or bridge when done.
  • Mark Dygert
    Options
    Offline / Send Message
    cryrid wrote: »
    Well, I'm using XSI
    Sounds like you're using Maya?
    Lol
    He posted that while I was working on a reply. Probably wouldn't have bothered replying if he had mentioned it in the original post =P
    Hopefully someone will get some millage out it...
    Vig, thanks for that, that tutorial seems pretty useful.

    Do you think it's still relevant enough though, given that it was in 2002? (ie Max/Maya might have significantly better tools now for the same job).

    Also, the Sweep modifier, is that for tiling the texture along the track?
    You create two splines one is a profile spline (a cross section of your road) the other is a path.

    This covers sweep and loft pretty well.
    http://www.wonderhowto.com/how-to-spline-model-loft-sweep-monitor-3ds-max-8-196415/

    The great thing is that because its a spline it creates very clean UV's for you, normally all you need to do is scale it vertical until the tile looks good. Because the UV's aren't stacked and its one continuous piece, it makes tweaking individual sections much easier of you get stretching.

    Graphite/polyboost has a nice feature for tweaking UV's on the model, it helps to scoot them around and minimize stretching on corners without having to monkey with the UV editor.

    Once you get the hang of the sweep modifier you'll use it for a lot of things like trim around doorways, gutters, I-beams all kinds of stuff.

    The real easy way to trim something is to select the edge, click "create shape" (in edit poly) this makes a spline, and run sweep on it, instant trim. The pre-defined profile shapes not what you're looking for, no problem define your own profile shape.

    Out of the options I listed above I would use Sweep after painting a path spline.
  • Dandi8
    Options
    Offline / Send Message
    cryrid wrote: »
    Constrain > Curve(Path).

    I'd try making a few modular pieces (textured), then constrain them and adjust the age where needed.

    If the track is large enough that it would take too long to manually duplicate these along the constraint, you could keyframe the path%age from 0-100 (make this linear) and then duplicate it along its animation by Edit>Duplicate>Duplicate From Animation. Then you'd just need to change the step size to mix them up. Weld or bridge when done.

    Exactly what I was looking for!
    Is there some way to weld two track parts together like using the Merge tool with blend on, but achieving more subdivisions on the blend?

    Oh and what's the desired poly count on race tracks? I don't want to make the track too subdivided but then again I don't want to make it too lowpoly if I don't have to.
  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    Dandi8 wrote: »
    Oh and what's the desired poly count on race tracks? I don't want to make the track too subdivided but then again I don't want to make it too lowpoly if I don't have to.

    Really depends on its target (PC, XBOX, WII, DS, ETC...) Just give your bends enough geometry to look correct. Straight pieces, you could probably get away with 12 tris. If you're going to be vertex blending any of these, you obviously need more verts though...
  • Mark Dygert
    Options
    Offline / Send Message
    Hopefully XSI lets you work on a sliding scale. Meaning you can dial up a parameter and the track will get a bit more or less dense. Max and Maya both have it in their spline tools I would shocked if XSI didn't.
  • Dandi8
    Options
    Offline / Send Message
    @Vig:
    When welding to models together, it sadly doesn't give any options for that.

    @DarthNater:
    We're shooting PC, UDK engine and I was actually thinking about the entire track.
  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    AH Dandi8 make your track pieces modular :P Have a look at the crappy road bits I made in my portfolio (nfollmer.com and look at the mod work). The straight piece and the curves all use the same textures. Most of the larger cracks and potholes are done with decals.
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    Is there some way to weld two track parts together like using the Merge tool with blend on, but achieving more subdivisions on the blend?

    I would select one side, and extrude it along the curve towards the piece you want to merge it with. You can increase the subdivisions on the extrude as needed. Just it it close that way, and then merge/weld for the same effect.
  • disanski
    Options
    Offline / Send Message
    disanski polycounter lvl 14
    @ DartNater : I realize it is silly question but I am having troubles understanding what do you guys mean when talking about decals...
  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    http://udn.epicgames.com/Three/UsingDecals.html

    Use decals sparingly. Vertex Blending is usually a better option, but decals are a quick and good way to get small changes on geometry.
  • disanski
    Options
    Offline / Send Message
    disanski polycounter lvl 14
    Thanks a lot Dart and sorry for distracting from the main topic. I am not using the unreal engine yet, but that made it a bit clearer.
  • Mark Dygert
    Options
    Offline / Send Message
    Floating planes with opacity maps and shadows turned off work as decals too. If its for rendering there are probably some material tricks you can do to combine different maps.
  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    disanski wrote: »
    Thanks a lot Dart and sorry for distracting from the main topic. I am not using the unreal engine yet, but that made it a bit clearer.

    You can use Vig's method if you're rendering in XSI (I never tried it in UDK, but technically that should work too. I don't know if it would be better or worse on performance)... No need to be sorry, this is YOUR thread :P
  • disanski
    Options
    Offline / Send Message
    disanski polycounter lvl 14
    :) hehe Thanks Vig and Dart ... no no it is not my thread :) but as long as we are "polite" we should be able to spam it :)
    I am using 3ds max BTW. I should look in to this it could be used for many things obviously and I heard about it many times but up till now it was not clear what it was exactly :). I am currently working on / learning how to make some characters and it looks like it could be used for the textures for characters as well.
  • Dandi8
    Options
    Offline / Send Message
    Yup, my thread! Mwahahahaha! I've no problem with disanski hijacking it, though.

    Still, no one told me how many polys a whole track should have.

    And I don't want to make the pieces modular because virtually every map will be drastically different with different twists and turns. Oh, and I've no problems with texturing, I just want to know how to model the thing :)
  • disanski
    Options
    Offline / Send Message
    disanski polycounter lvl 14
    :poly124:yeaa you should probably start up a NEW SEPARATE thread for all of those new questions :)
  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    Dandi8 wrote: »
    Yup, my thread! Mwahahahaha! I've no problem with disanski hijacking it, though.

    Still, no one told me how many polys a whole track should have.

    And I don't want to make the pieces modular because virtually every map will be drastically different with different twists and turns. Oh, and I've no problems with texturing, I just want to know how to model the thing :)

    If you make one huge mesh, you're going to run into performance issues. You should really cut it up regardless.

    It's very hard to give you an exact poly count (HA). Just model it, if it kills the system, cut it back.

    I was getting you guys mixed up :P
  • Joshua Stubbles
    Options
    Offline / Send Message
    Joshua Stubbles polycounter lvl 19
    yeah the pieces don't need to be modular but they certainly need to be broken up for performance and culling operations. Though, you could technically make a bunch of straight sections that have quite a few slices, length-wise. Then you could apply clones along a spline and they would deform to fit it.

    The way Alec explained it is pretty much how we did it on Forza3, too. Road surface was done with step splines and extrusions, while the shoulders and terrain were done by hand and stitched. We wanted lots of blending textures and more advanced surface details however, so our texturing process was not as simple as he explained.
  • Dandi8
    Options
    Offline / Send Message
    Lofting here describes extruding one curve around the other, right?

    Is there any way I can get the info on when and where I should cut my pieces and how many polys they should have? I don't know if I should be aiming for 1k+, 5k+, 10k+ or something way bigger. Anyone knows how many polys the Wipeout HD tracks had?

    For the XSI guys out here:
    How to keep the track upright while extruding that way?

    Oh, and big thanks, guys. You're saving my life here :D
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    Lofting here describes extruding one curve around the other, right?

    Is there any way I can get the info on when and where I should cut my pieces and how many polys they should have? I don't know if I should be aiming for 1k+, 5k+, 10k+ or something way bigger. Anyone knows how many polys the Wipeout HD tracks had?

    For the XSI guys out here:
    How to keep the track upright while extruding that way?

    In XSI if you extrude a profile curve around a guide/rail curve, it should be upright by default. Same goes for component extrusion. If not, check the PPG for any checkboxes related to tangency. Path Constraints usually have a few options that can be enabled to help get the desired effect (tangency, up vector, etc). Playing around with it, I'm beginning to like the curve-along-curve method.

    I'm in no position to offer insight on polygon counts for a racing game, but I think the general idea is to break the track into several chunks, the minimum ammount depending on how much of the track is typically seen on screen at once. This way the engine is more likely to be rendering only the models/faces that can be seen on the screen, and not wasting resources rendering the parts of it that are offscreen (which could happen if it were all one model). http://en.wikipedia.org/wiki/Viewing_frustum
  • rumblesushi
    Options
    Offline / Send Message
    Actually it wouldn't happen, those polygons would still be culled/clipped, but you would waste a huge amount of resources simply looping through and checking the polygons in one huge mesh, even if you're only going to be viewing a small part of the mesh at a time.

    By applying per model culling, if a model is deemed to be off screen, you can immediately eradicate large groups of polygons from the list that needs to be checked and possible rendered.
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    Ahh, thanks for the clarification (I wasn't sure exactly how that worked).
  • rumblesushi
    Options
    Offline / Send Message
    No problem. The per model culling is essentially a broadphase, but the individual polys still need to be iterated over one by one, checked for visibillity and possibly clipped against the frustum, and of course back face culled, before adding any of them to the render list.
Sign In or Register to comment.