Modular Carshape
Up to Research & Development
Hoss wanted another thread for this, so here it is.
I have make significant progress on a modular carshape, so this first post is something of a status report.
I have borged some parts, taken some parts raw, and created some all new parts. The all new parts are not exercises in creativity though, and are rather meant as utilitarian and 'spec setting' for the 'interfaces'. In particular, the nose body section, which is all new, is a simple modern style mainly due to the squarish cross section, which makes skinning easier (curvature presents a projection problem, which is not really 'solvable', and is more just 'mitigatable'...the same reason we have a multitude of globe projections in existence), and makes LOD really easy. At the moment, all of the all new parts are rather high resolution. I have not done any LOD grooming yet, although that should be easy, since I used subdiv and have low res cages already.
So here is a parts review of what I have working together:
- nose&body -- all new -- single keel. the 'body' portion defines the sidepod/body interface and the engine/body interface.
- tub and cockpit -- all new, patterned after thebes/FIS, simple carbon fiber layer (no adornments on the side or anything). The driver sits in a lower position than most 88s, closer to a modern position, but the cockpit view is still closer to the mclaren88 than anything else.
- gauge -- this gauge: http://gridmotorsports.com/guides/gpgauge/
- front wing -- borged from march88, new texture mapping
- rear wing -- borged from march88, new texture mapping, fixed an asymmetric defect
- sidepods -- all new, very simple boxy approach (like the 88s). This is probably the most pressing area for fancy alternates.
- diffusor -- borged from march88, nearly stock with just a little vertex pushing to fit the midsection of the modular car
- front suspension -- borged from march88, signifcantly altered to define the suspension attach points, which are single keel.
- rear suspension -- borged from march88, slightly altered
- engine/tranny main body -- borged from lola88, altered to fit within the diffusor
- exhaust -- borged from lola88, heavily altered to route through the suspension, and up rezed to make it rounder.
- induction -- all-new. This is my first experiment with 'alternates'. I did some nice trumpets as option A and an airbox that routes in a mostly modern fashion as option B. The airbox completely encloses the intakes, but leaves the valve covers exposes. Part of the 'spec' is to leave the valve covers exposed so that the engine has some skinning exposure ensured.
- valve covers -- all-new, although simple. Mainly the point here is that they are skinnable by engine manufacturers, whatever that turns out to mean.
- decal panel -- all-new. This is the preferred approach for decal support. Decals are put onto an otherwise transparent panel instead of being composited onto the main skin. This gives better delineation control, as well as reduced build times on weekly decal updates. Some of our other cars already do it this way too.
- steering wheel -- raw march88 rip
The skinning approach is to have all member skinning to take place on a single texture. This makes it easier for members, and also makes it much easier for me to manage the off season submission processing. The trick is that different custom parts will have different ideal mappings. So I decided to go with an assigned region approach, kind of like a chip die. Certain regions of the texture space are reserved for certain parts. The downside is that texture reuse of one part that stays the same when other parts are changing cannot be done by keeping some textures and replacing others. But this is no big deal if skinning authors are using layers, which both gimp and photoshop support well.
The exception 'part' is the valve covers, because these are potentially done by 'engine manufacturers' and will be imposed on cars, much like decals (in fact, almost just like decals in the decal-panel style). Valve covers are therefore not really a option part in a geometry sense. They are a skinnable spec part.
Packaging will be done using the Genstring mechanism, which is where the .veh file can specify variations in the .gen files. We therefore basically have 9 option slots, with at least 36 options possible per slot (characters A-Z,0-9), which is more per than we'll need. The slots I'm seeing as:
- nose/body/windscreen
- sidepod
- diffusor
- gauge(s)/steering wheel/cockpit adornments
- suspension
- wings
- engine/exhaust/backfire (backfire has to line up with exhaust, so is bound 1:1)
- rims/tires
- induction
Note that suspension, wings, and wheels have front and rear as a single whole. This is to a) save slots, and b) they tend to follow each other in 'style' anyway.
Number of LODs pre slot will have to be set ahead of time, because that part is hard cooked into the gen files. I'm thinking we LOD the engine, nose/body, sidepod, induction, and wheels at three levels (lo, md, hi), and everything else just on/off. Note wings are not on my lo/md/hi LOD list, since they tend to be really low poly even at full res. If a 3-way part is low enough poly to not need 3 levels, the author simply duplicates a LOD as necessary.
Things I need to do before I expose it to you (Dennis), so you can consider what you may want to do, if anything (such as making alternate parts):
- brake lights
- do the aforementioned packaging
Things someone(s) ought to do sooner than just delving into gratuitous option parts:
- high rez wheels and tires (Hoss seems to have an inclination in this field, so maybe he'll give it a go)
- a better sidepod option (the one I have now is maybe too spartan)
- non March branded steering wheel
Nifty things TODO hot-list:
- analog gauged cockpit
- alternate wing (so we can differentiate rigid and flex)
- alternate suspension, with some sort of 'widget' showing in front (so we can differentiate gyro and helo)
- alternate diffusors (narrow, medium, wide)
- old school nose (current one is modernesque, and I like the old stuff)
On the whole brake lights issue; I made that comment in jest during the last race but in reality I've often thought about WHY there are no brake lights on open wheel race cars. Is estimating the driver's braking points just considered part of the challenge for traditional reasons? Seems like from a safety point of view (in real life) and from our point of view of reducing rear end disasters a good idea.
How is this related to AJ's post? I'm wondering how far we want to go when designing cars and car shapes for the league. We obviously have shapes that run the gambit from classic to more modern but assuming that a car has to be of an open wheel design how far beyond the reality of what is and has been used in the real world of open wheel racing is acceptable? Brake lights are a minor example of something I've never seen done (excepting blinking rain lights on the back of F1 cars).
Oh yeah, I forgot to mention, I got 3dsimed working again, and with the most recent version Blender has become a completely capable tool. The normals now survive properly if you use Collada 1.4 as the format from Blender to 3dSimEd. However, you still have to use 3ds as the format from 3dsimed to Blender, because the 3dsimed Collada export throws away too much info (it munges all the materials/parts into one), while the 3ds export is quite good. Obviously, if you have Max, Max with the ISI plugin is superior, but for the rest of us, Blender can now work.
Some notes for those who use the Blender/3simed pipeline:
- The 3dsimed -> 3ds -> blender -> collada -> 3simed pipeline results in a 1/100 scaling by the time you get back to 3dsimed. So in that final step simply scale by 100 after you import back. Alternately, you can scale on the initial import into Blender, but I've found it much more convienient to scale later, since I've been doing more early imports for reference material than later imports of authored stuff. The tradeoff may swing later as I start pooping out more authored iterates.
- Be sure to assign a material to new geometry. 3dsimed will fail on import of geometry without a material assignment, with an uninformative message (it took a while to figure out what I was doing wrong here). You do all the real material work in 3dsimed (except UV mapping), so don't bother dealing with materials in Blender beyond just making sure one is assigned.
- Save often when exporting Collada. Blender loses stability when exporting collada. It's not terribly unstable, but enough so that you need to save before every export. Fortunately, Blender starts up really fast, and a save saves everything (ALL settings, including views, etc), so the only annoyance is really just a couple of clicks to save.
Differentiating between flex and non-flex wings: I took a look at the March 88. It looks like the march 88 uses a multiple wing configuration... the front wing is composed of two wing pieces, one over the other, and the rear wing's upper section uses the same thing. Maybe the simplest (and maybe too subtle?) way of showing the two wing types would be to continue using the multi-wing configuration for the flex wings and change them to a single wing plane for the non-flex wings. Done right, they might even be able to use the same skin.
Showing the difference between helo and gyro: All that's really needed to show the difference is a set of drive-shafts. You could even reuse the rest of the suspension, just add a set of shafts.
Thoughts on the valve covers; We might consider setting the opacity level on the cube-map pretty high to give a nice chrome effect when the alpha channel is set right. Someone could still get a brushed metal or a completely matte look by adjusting the alpha channel.
I prefer an analog gauge myself, so I'd be willing to work on that, but that's really outside my comfort zone at this point, so I'll take a look at redoing the steering wheel as a way of getting my feet when in actual modeling first...what sort of changes did you have in mind?
My rule of thumb on where we go with things is that a thing is good if it has the potential to improve the racing while not breaking the immersion. So rear brake lights on an open wheel car, done in the style of the F1 blinking LEDs (but not blinking), is a perfect example. Things like that will be a lure to teams to switch to the carshape, even if we have the other shapes still allowed, because the brake light is an advantage to car with the brake light, since it reduces the chance of getting punted. For example, at Adelaide, if Anthony had a brake light, I probably would have hit him much lighter, and he may not have spun.
But note...these new fangled features will only show up on the new modular concept, because we need do each thing only once. I only need to do one brake light. Hoss (or whoever) only needs to up res one set of tires. We only need to do a gyro widget on the suspension once. Gauges. Steering wheels. Etc.