Applied Procedural Geometry

Runitai

Newcomer
Here's an idea:

With the stupidly programmable NV30 on the way, would it be possible to write shader programs that synthesize 3D objects?

See, one of my biggest peeves with 3D models as their used in games is that you get multiple identical copies of the same object, and it throws off the illusion that what you're seeing is at all real.

It seems like with high-level shading languages on the way, you'd be able to (easily) write shader programs that take a "base case" model/skin and apply "personality" features to it based on a seed value. That way, two player models that run off the same chunk of memory could look slightly different when rendered, thus adding to the illusion that they are each their own unique entity. You could have a horde of charging orcs all running off the same model look like a hundred different models.

Start simple. I'm sure it pisses people off in MMORPG's (I don't play them) when they find the COOLEST piece of armor, start strutting around town, and come across a guy with the exact same piece of armor. Now, if that armor was slightly yet noticably altered by way of a shader program with a 32-bit seed, then the chances of two identical pieces of that armor coming across one another would be extremely low, and it would be up to debate as to which particular piece of armor looked "cooler."

Sound neat?
 
Yup, in fact Ken Perlin gave a talk about this at GDC. He's been using noise for ages to do this sort of stuff (add "personality" to animations). Problem with vertex shaders is, # of verts in = # of verts out. You can't create or destroy geometry - only modify it.
 
You can actually use displacement maps to do close to what you describe. You can start with a base model and have a different displacement map for each character. Of course now the content creation bottleneck has been shifted to creating the displacement maps, but it might be possible to write a tool that generates variations based on an input displacement map.

This handles the geometry creation, so now all you need is to have varied pixel shader programs to create even more variations.
 
"We are all individuals and this is our uniform" :)

Runitai said:
Here's an idea:

Start simple. I'm sure it pisses people off in MMORPG's (I don't play them) when they find the COOLEST piece of armor, start strutting around town, and come across a guy with the exact same piece of armor.
Only if they were female and going to the same wedding or formal function... :p

Seriously though, Kristof (I think) did a demo using 'vanilla' DX7 texturing to produce Perlin-like texture synthesis. It's on the PowerVR Dev site if you want to take a look. Using that sort of technique would make it easy to automatically individualise each item.
 
Back
Top