[Bf-committers] Subdivision Surfaces Proposal

Ton Roosendaal bf-committers@blender.org
Tue, 25 Nov 2003 12:54:41 +0100


Hi,

Yep, the current editmesh.c code is ancient and growing completely out  
of control! I wouldn't propose a revamp of this for the 2.xx series,  
but what's well possible is to design a new Mesh format that lives next  
to the old one. Blender easily allows to add new Object types. (Well  
easily, it's undocumented, but something that can be done nicely  
without hacks! I can assist with that).

The data representation type could be designed in two steps:

1. A compact & simple, preferable compressed, format to store in memory  
and save in files. Preferably consisting out of as few data chunks as  
possible, and easily to parse for creating display lists and do  
conversions.
2. A highly flexible and advanced 'editing format', for tools to  
operate on. This fits within Blender's convention to have EditMode.

By creating conversions to/from current Mesh data it can (eventually)  
become invisible for users, where internally this conversion just  
happens automatically.

-Ton-


On Tuesday, Nov 25, 2003, at 07:22 Europe/Amsterdam, Matthew H. Plough  
wrote:

> Hi Lyndon, and the rest of you coders:
>
> Thanks for your interest in implementing a new mesh data structure. I  
> have
> done a bunch more research, and have encountered a data structure  
> called the
> non-manifold indexed data structure with adjacencies; De Floriani and  
> Hui
> wrote a paper on it entitled "A scalable data structure for
> three-dimensional non-manifold objects."
>
> While the partial entity structure (that I described previously) is  
> designed
> to represent non-manifold objects, this structure and its  
> contemporaries "do
> not scale with the number of non-manifold singularities, since they  
> have
> been developed under the assumption that objects contain several
> non-manifold joints." (De Floriani 2003)  The newer NMIA  
> representation is
> designed specifically to scale in this fashion, and since most meshes  
> that
> people use are manifold, the NMIA structure does not incur a huge  
> storage
> cost above Blender's current mesh representation.
>
> I know that most coders are currently busy with other work and do not  
> want
> to touch Blender's mesh data structure until perhaps version 3, but I
> believe that beginning work on revamping Blender's meshes as soon as
> possible would be better in the long run.  A lot of the code is a huge  
> mess,
> and it seems that many hacks have been added on top of quick hacks.   
> The
> only way to continue developing mesh tools without a data structure  
> update
> is to continue hacking, and doing so will only make the code more  
> difficult
> to understand.  The cleaner code that I seek to provide would make life
> easier for developers, and allow newcomers to spend less time learning  
> the
> quirks and begin contributing code much sooner.
>
> Email me if you are interested in working on this project; I have yet  
> to
> move even to a planning stage as I'm still researching the topic.
>
> Sincerely,
> Matthew H. Plough
> mplough@princeton.edu
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://www.blender.org/mailman/listinfo/bf-committers
>
>
------------------------------------------------------------------------ 
--
Ton Roosendaal  Blender Foundation ton@blender.org  
http://www.blender.org