[Bf-committers] On storing information in meshes..

Kiernan Holland bf-committers@blender.org
Fri, 19 Dec 2003 00:14:59 -0700

I think that it should be possible to store any amount of information with
edges and 
faces. The only way to do this is offer pointers from the edges and faces
extended use.. I know adding 4 bytes to each that may never be used is not 
very efficient, but if you wish to add your own information to the mesh in
the future, 
it should be possible, say you write a plugin that tags informations to
edges, vertices 
and faces. Examples I'm think of is how 3DsMax works with Combustion, 
where multiple layers of information is stored in pixels and possibly in
the data structures 
that represent the objects. 

In sequence editor for instance it would be nice if you could store UV
into the frame  buffer, so that for instance you could texture map objects
post production. I don't see what the big deal is about Combustion, blender
do that.. 

I'm only saying that there is a lot of use that could be realized if simply 
mesh data and pixel data could be loaded with more information.. It may not 
make sense now, but it will in the future when you see what people can do
with it.. 

I can think of many uses for embedding normal information into surfaces, 
like for redundant normal information, you could define the shading of the
and then store information that would help out in a post-production module
implements impressionistic renderings of objects. There are people 
using packages like AVIsynth to reuse motion vectors from MPEG movies to 
add motion blur to video in post production.. I think the reuse of vectors
embedding in objects could be very useful to artists.. Imagine for instance
you could store vectors in a surface to determine the direction that
particles are 
to fly, or the way that a drop of water should flow down a surface. Another
would be, if you could store a vector with a fraction associated which
could represent the 
probability of a character passing in the direction of the vector over the
surface,  a vector oriented 
in the opposite direction of the characters movement could define friction,
a vector oriented 
away from the surface could determine the probability the character can
jump at that point (virtual rock?), 
a vector oriented in the direction of the chracters movement on the surface
the character is 
walking over could determine the probability the character moves fast over
the surface (rivers, 
conveyor belts, etc.). 

But these are only examples of what advantages can be reaped from allowing 
extensibility in anonymous surface information, as well as in 2D pixel