Helioforge Helioforge

PROJECT IN WORKS: Spaceship Mesh Generator for SINS

PROJECT IN WORKS: Spaceship Mesh Generator for SINS

Spore-Style ship creation for SINS...

Project Coding Started on Aug-7-08...

Spaceship Mesh Creator... ...Exports to SINS Mesh Format

3D interface has all 3 standard views, a three-quarters view, and zooms in/out
There are a dozen curvilinear algogithms, a lot of algorithms for ship profiles
Saves the output into SINS Mesh Format...

This program starts with a ship profile, and mutates it by compounding algorithms to arrive at a single, continuous, curivlinear form.

The Ship Profile algorithms make the ship as pointy/round/thin/smooth as you like, with the ability to merge profiles in any combination you like...

...This is a very simple program that is growing exponentially in power, the more features it gets...

When it saves, it generates it's own Triangle, Position, Normal, and UV data, (with the rest of the file coding when I get to it), as a SINS mesh...

I made all these meshes with the program I'm writing...
Big Honkin' Whale
Death Star Hunters: We're on it's trail!
Scout
Fantasy Asteroid!
Delta Flyer anyone???
Back View
BladeShip
Fugu Me!!! (Homer quote)
Scalloped Cruiser
Strikecraft
Windmill
260,144 views 84 replies
Reply #51 Top
Make a mesh-pack of different sized cubes and spheres.
I'm sure they will be assimilated by the Borg Collective.
Reply #52 Top
Hey Alex, I like your avatar of the base with the blue glowing sections... ...mesh packs sound like a good way of getting material into use before the program is finished :) :D

I might be able to add inset detail panels to the meshes for things like hangar bays and weapons ports, and for exposed hull sections that many ships have...

Here's a detail of the starbase I'm working on...




I hope to make it look a little less like a whale though...
+2 Loading…
Reply #53 Top

I made a missile for bombing runs...

Missiles away, wheeeeeeeee!

Reply #54 Top

its a squid    looks tasty

Reply #55 Top

Seafood. :sick:

 

:fox:  

Reply #56 Top

Yeah, the algorithms like to make organic shapes better than TEC style ships, probably due to the smoothing function...

I've started experimenting with hull textures to see how it affects their shape...

Now it's even more tempting to make those Borg ships, since Major Stress unleashed his first ship-taster version of the StarTrek universe for SINS...

Reply #57 Top

i actually prefer organic shaped ships than the tec shapes. 

Reply #58 Top

Quoting SpardaSon21, reply 1
Hahahahaha! Yeah.I would love to custom make myself the Galactica, Eclipse, or even a Terran Battlecruiser from Starcraft. Yamato cannons FTW!

BATTLECRIUSER OPERATIONAL!!

Reply #59 Top

Helio,

You need to finish this, so that I can start using it, or so you can make models for me! :grin:

 

DANMAN

Reply #60 Top

Quoting Mr_Blunt3d, reply 8
Quoting SpardaSon21, reply 1Hahahahaha! Yeah.I would love to custom make myself the Galactica, Eclipse, or even a Terran Battlecruiser from Starcraft. Yamato cannons FTW!
BATTLECRIUSER OPERATIONAL!!

 

Yeah well, BC's are okay until you get Yamato Cannons.  Then they are some of the most powerful units if used properly.  I mean, a YC will blow up a missile turret, allowing you to drop your forces behind his lines.

 

It should be able to after all.  A Yamato Cannon takes the explosion from a nuclear warhead and focuses it into a shot which directs a nuclear blast onto whatever it hits.

Reply #61 Top

I just added a feature that changes it up a bit, letting you define limits in the shape of the mesh, at the time you press the button, sort of like the STORE button on a calculator... ... and it's the first step in making meshes with multiple stacked shapes, allowing you to create separate engine pods and the like...

  Here's a better pic of the whale base from above, compared to a similar design...

base2

base1

In contrast, here's a couple less organic ships showing how the mesh can be truncated...

pointy cruiser

truncated cruiser

Finally, in contrast to the original mesh I used to decypher the SINS mesh format...

mine2

Reply #62 Top

Last night I added a group of "Spare Mesh slots" to the coding, which will let me save meshes with mulitple shape sets, allowing for engines and other complex details to be added to the designs (so it can make Babylon 5 jumpgates)...

It's sort of like the mesh-lego experiments, but with the mesh components still like putty, so the parts can grow together in some fashion...

Also, I'm going to make a "Save Settings" file, so you can save your place when you quit the program (as soon as I figure out a good way to convert large-precise numbers into byte-sized chunks, (without losing data on either end of the decimal point)...

Reply #63 Top

Helioforge,

   I would like to playtest your mesh generator.  The ships your program tends to make are perfect for my new race.  I am making a variation on the 8472 bio-ships.  This is why I wanted the Borg in, but instead of 8472's, I will make it my own race that I named myself.

With the power of your generator, I can open "The FleetAlex Fleetyards", because without a fleet, I'm just Alex.

Reply #64 Top

I would also like to mess with the code for the generator,  So I can expand on the designs it can make.

Reply #65 Top

Helioforge,

if you put your focus on making the generator and I focused on making ships, releasing a ton of mesh-packs, then it gets tested and Soase gets it's ships more quickly.

   This seems to be most efficient way to go.

:borg: (resistance is futile)

Reply #66 Top

Quoting Kitkun, reply 25
A picture of drinks and chips for everyone else:
As long as it isn't Vasari-flavored...

no worse, its CLEAR PEPSI8C

Reply #67 Top

Alex:  Since I've put considerable effort into programming it from scratch, I'll be claiming at least the first race's worth of ships and bases for the race I'm designing...

All the local militia work (and a hundred minor experiments in modding SINS) have given me the experience to assemble a race with original designs, powerful features, and careful balance, with strengths and weaknesses that change the nature of the game, without breaking it...

  Since my developer's tool was only started a month ago, I'll wait for more features to be added, to clean up the interface (currently it looks like a control panel from the space-shuttle), and to track down anomalies created by the interaction of those features...

  Oh, and a friend showed me the SPORE interface (it had a TREMENDOUS interface), but all you can make with it is SPORE creatures, so as perfect as the engine is that drives it, ... ...but I could go on for a week about the amazing user-friendly interface...

  If IronClad adapted the SPORE interface/engine to do what I'm attempting, SINS would never run out of ships!

Reply #68 Top

Just my two bits: this is an ambitious project you have undertaken, and hats off for attempting it!

That said, my suggestion is to work on the way you generate your meshes. Cubic mapping doesn't really work with curved objects, as you can see from the way your textures stretch in many places - that is why most "mesh generators" actually use pre-modelled and UV-mapped  pieces. Spore Creature Creator is an interesting example of this technology and the way I *think* it works is that they have a set of pre-modelled "body parts" and then allow the users to simply resize it but, and this is important, not change the number of vertices on the model, preserving the UV mapping and probably dynamically scaling it with the changes.

I'm saying this because in order to make your models look good, you have to either go procedural all the way, but that tends to look poorly when you're going for detail you need for ships (unless you have a really hi-res mesh, but even then I have no idea how you would procedurally generate details like windows to appear in the right places) or if you use UV mapping, you would be better of with a library of pre-made objects, like in Galactic Civilizations or Spore. Fact is, procedural mesh generation works nice for blobs and terrain, but ships tend to be a little bit too complex and shape-specific for that.

Please do not consider this as anything but constructive criticism - fact is, I do not have a clue how I would go and program something like this, so I am simply speaking from the perspective of a CGI artist. :)

Reply #69 Top

Thanks Mansh00ter...

(I know a lot of people's Anti-Troll filters have been set to HIGH because we are all waiting for 1.1 proper, and waiting causes frustration, so the disclaimer is understood)...

Actually, I was considering rewriting the program from scratch, because one never thinks of the best way to do something the first time...

Right now, the program simply uses polar coordinates to wrap a sheet of points 41 across and 21 high.  In a rewrite, the sheet needs to be 3X2 all the way up to 60X30, with everything in-between (sort of how the backbone in SPORE works, but in both directrions)...  ...and all the features need to be rewritten to handle variable mesh sizes...

As for the UV stretching, I could simply write an algorithm that slides points around to fill in all those gaps that cause the stretching.   The other thing that causes the stretching is the way the sheet of points is wrapped into a sphere (I'm trying to figure out a reliable way to keep the points from concentrating at the poles of the object, as caused by the algorithm)

   I already have spare mesh-data-sets in place, which is the backbone of making the saved mesh contain several shapes at once, but I would still need to make the display show them at once, and to save them in one mesh file...

   Right now the program is at the point that the best thing to make it better is to redo it (a lot of the algorithms can simply be transferred, or rewritten quickly)... ...However, my interface and display are simply terrible (compared to anything 3D out there), and to do it right, it would need a display engine as powerful as SINS

   With only one mesh to display, the SINS engine would handle it with no problem, and the slow part would be all those iterative calculations needed to merge all the primitive shapes (something SPORE skipped over by making a ton of preset parts (with cutesy names))

   With just a simple addition to my code, my program could save meshes in algorithmic mode, instead of as a mesh, allowing for the algorithm to be imported back in (you could save and load your own parts, and make engines that could be swapped in on the fly)...  ...But if all the parts cost a thousand triangles, it gets big very fast, this is why I would need to make the algorithm handle variable sized meshes.  Little things like antenna could cost 12ish points instead of doubling the info for a minor add-on...  All the pieces are roughly in place, but for it all to work, it needs to be rewritten.

 

Reply #70 Top

Well.  Then get to it Helioforge.  Re-write it!

Reply #71 Top

What I just wrote may look contrary to your suggestion, because of UV stretching and a declaration of variable-sized data-sets for meshes...

  The main reason my UV maps stretch is that the proportions of the triangles don't match the proportions of the texture map.  I would move the points around to fix those proportions rather than to move the reference points on the UV map (of course, I am in a unique position to do it this way, given the algorithmic nature of the program)...

  I'm not sure how I would move the points around to compensate, but I do remember math classes that talked about calculating the "curviness" of functions.  I would have to "unhook" the points from hard-coded positions in polar coordinates, and let them float on the surface. (it may take 60 years, and Teal'c may get a grey streak in his hair, but I think I could figure it out)...

+1 Loading…
Reply #72 Top

Oh wait, my "smooth" function was already supposed to do this, but it had the unfortunate side-effect of making the whole thing smooth, so I just need to make the points move to their new positions in polar coordinates, and overlay those new positions on top of the original iteration of the algorithm...

Reply #73 Top

Stop the techno-babble!

 

I'm a geek, not a nerd.

Reply #74 Top

Now I know why Helioforge picked the Carter avatar!  He totally pulls it off too!

I've tried it but it always ends with "-reversing the polarity of the Flux Capacitor"!

Reply #75 Top

I went ahead and coded the program for variable data sets for each mesh component, but doing so breaks most of the data for the functions... The spheres still work (in all sizes), and the cones will be easy to fix, along with the cyllinders, after that, fixing each function will be progressively more difficult (so far I didn't have to rewrite the program...yet...)

Actually, just the cubes will be difficult, as most of the other functions rely on data relative to the size of the data-set, regardless of what numbers are entered (so it just has rough edges to smooth out, but until then, I'm getting some really wildly twisted meshes, maybe I should save one and show it)...