POV-Ray : Newsgroups : povray.general : Request: deform : Re: Field_deform (was: Request: deform) Server Time
8 Aug 2024 16:21:06 EDT (-0400)
  Re: Field_deform (was: Request: deform)  
From: Chris Huff
Date: 16 Jan 2001 16:47:51
Message: <chrishuff-0D931C.16485116012001@news.povray.org>
In article <3a633135@news.povray.org>, "Rune" <run### [at] inamecom> 
wrote:

> Let's see if we understand each other so far.
> 
> In the scene file there will be a block of bone information.
> Maybe like this (like you suggested):
...snip...

I would prefer the boned_mesh syntax, because it will let you specify 
data along with each vertex instead of separating it all out into a 
deform:
boned_mesh {
    bone_list {bone{} bone{} ...}
    triangle {P1, P2, P3// normals when smooth_triangle is used
        bones {[Bone1, Weight] [Bone2, Weight] [Bone3...}
        // the Weight values would be optional
    }
}

And this would be useable as a independant object and as a "mix in" for 
meshes. (This is a separate idea I have been thinking of...letting you 
mix triangle-based objects like height fields or bezier patches along 
with the triangles.)
A more compact syntax for machine generation could also be added 
(analogous to mesh2).


> A bone consists of an ID number, two times two points and two vectors 
> and a radius and a strength. Maybe like:
> bone_deform {
>    bone {
>       ID-number,
>       home_end1, home_dir1, home_end2, home_dir2,
>       curr_end1, curr_dir1, curr_end2, curr_dir2,
>       radius, strength
>    }
>    bone {...}
> }
> 
> The fields defined by the strengths and radii of the bones will 
> control how much each vertex is influenced by each bone.

That is something I haven't thought much about...the simplest way would 
be to let the user specify the ID number, but I would prefer a cleaner 
method letting the user name each bone (the names would only be valid 
within the boned_mesh block, of course) and refer to them by name, the 
names would then be translated to ID numbers by the parser. I don't know 
how to implement this, though...


> This information will be used to deform the mesh by moving the 
> vertices according to the bones and the weights. After the 
> deformation has happened, all the bone information can be deleted 
> again. In the rendering stage the mesh will render just like any 
> other mesh.

Exactly.


> As you see, the only real question I have now is about the user-defined
> weight data. But this is only provided that we agree about all the rest,
> which I doubt... :)

Well, I can't think of a good way to do it with the bone_deform 
syntax...maybe specify the weights in the same order as the triangles, 
but that seems to be a really ugly and problem-prone solution.

-- 
Christopher James Huff
Personal: chr### [at] maccom, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tagpovrayorg, http://tag.povray.org/

<><


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.