POV-Ray : Newsgroups : povray.binaries.animations : Muscles (702KB MPEG-1) Server Time
5 Jul 2024 10:35:18 EDT (-0400)
  Muscles (702KB MPEG-1) (Message 11 to 17 of 17)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: David El Tom
Subject: Re: Muscles (702KB MPEG-1)
Date: 4 Jan 2006 06:59:21
Message: <43bbb899@news.povray.org>
Zeger Knaepen wrote:
> I'm not really sure I understand it completely :-/
> 
> cu!

I thought about something like this (never tried, so maybe doesn't work 
at all):


1. declare your blobs defining the single muscles

#declare blob_object_1 = blob{....}
#declare blob_object_2 = blob{....}
  .
  .
  .
#declare blob_object_n = blob{....}

2. declare functions based on object-patterns using the formerly 
declared blobs like this:

#declare bf_1 = function{pigment{object{blob_object_1 color rgb 0, color 
rgb 1}}};

#declare bf_2 = function{pigment{object{blob_object_2 color rgb 0, color 
rgb 1}}};

  .
  .
  .
#declare bf_n = function{pigment{object{blob_object_n color rgb 0, color 
rgb 1}}};

3. now skin them using somthing to "blob" functions together like in the 
docs:

#declare blob_threshold = 0.001;

#declare skin = function {
(1+Blob_threshold)
  -pow(Blob_threshold, bf_1(x,y,z).gray)
  -pow(Blob_threshold, bf_1(x,y,z).gray)
   .
   .
   .
  -pow(Blob_threshold, bf_1(x,y,z).gray)
}

and use this function inside an isosurface-container large enough


... dave


Post a reply to this message

From: Zeger Knaepen
Subject: Re: Muscles (702KB MPEG-1)
Date: 4 Jan 2006 13:01:28
Message: <43bc0d78$1@news.povray.org>
"David El Tom" <dav### [at] t-onlinede> wrote in message 
news:43bbb899@news.povray.org...
> Zeger Knaepen wrote:
> > I'm not really sure I understand it completely :-/
> > 
> > cu!
> 
> I thought about something like this (never tried, so maybe doesn't 
work 
> at all):
> 
> 
> 1. declare your blobs defining the single muscles
> 
> #declare blob_object_1 = blob{....}
> #declare blob_object_2 = blob{....}
>   .
>   .
>   .
> #declare blob_object_n = blob{....}
> 
> 2. declare functions based on object-patterns using the formerly 
> declared blobs like this:

this step is a problem: object-patterns are binary, either a point is 
inside the object or it's on the outside, which makes them not suitable 
for isosurfaces :-/
 
cu!
-- 
#macro G(b,e)b+(e-b)*C/50#end#macro _(b,e,k,l)#local C=0;#while(C<50)
sphere{G(b,e)+3*z.1pigment{rgb G(k,l)}finish{ambient 1}}#local C=C+1;
#end#end _(y-x,y,x,x+y)_(y,-x-y,x+y,y)_(-x-y,-y,y,y+z)_(-y,y,y+z,x+y)
_(0x+y.5+y/2x)_(0x-y.5+y/2x)            // ZK http://www.povplace.com


Post a reply to this message

From: David El Tom
Subject: Re: Muscles (702KB MPEG-1)
Date: 4 Jan 2006 13:28:11
Message: <43bc13bb$1@news.povray.org>
Zeger Knaepen wrote:

>>2. declare functions based on object-patterns using the formerly 
>>declared blobs like this:
> 
> this step is a problem: object-patterns are binary, either a point is inside the
object or it's on the outside, which makes them not suitable for isosurfaces :-/
>  
> cu!

ah, ok I'see the point

  ... have to think about if it's possible to transform a blob which 
elements have a spherical pattern into a single pigment.
This, I think, could solve the binary problem. Have to go into docs 
again ...

... dave ...


Post a reply to this message

From: Zeger Knaepen
Subject: Re: Muscles (702KB MPEG-1)
Date: 4 Jan 2006 15:44:28
Message: <43bc33ac$1@news.povray.org>
"David El Tom" <dav### [at] t-onlinede> wrote in message 
news:43bc13bb$1@news.povray.org...
> Zeger Knaepen wrote:
> 
> >>2. declare functions based on object-patterns using the formerly 
> >>declared blobs like this:
> > 
> > this step is a problem: object-patterns are binary, either a point 
is inside the object or it's on the outside, which makes them not 
suitable for isosurfaces :-/
> >  
> > cu!
> 
> ah, ok I'see the point
> 
>   ... have to think about if it's possible to transform a blob which 
> elements have a spherical pattern into a single pigment.
> This, I think, could solve the binary problem. Have to go into docs 
> again ...

MegaPOV used to have a blob-pattern, but for some reason the latest 
version doesn't have it anymore :(

cu!
-- 
#macro G(b,e)b+(e-b)*C/50#end#macro _(b,e,k,l)#local C=0;#while(C<50)
sphere{G(b,e)+3*z.1pigment{rgb G(k,l)}finish{ambient 1}}#local C=C+1;
#end#end _(y-x,y,x,x+y)_(y,-x-y,x+y,y)_(-x-y,-y,y,y+z)_(-y,y,y+z,x+y)
_(0x+y.5+y/2x)_(0x-y.5+y/2x)            // ZK http://www.povplace.com


Post a reply to this message

From: John VanSickle
Subject: Re: Muscles (702KB MPEG-1)
Date: 4 Jan 2006 21:31:24
Message: <43bc84fc$1@news.povray.org>
Zeger Knaepen wrote:

> Second problem: I can't do it with 1 blob,  because limbs
> would blob together if they get too close to each other.
 > But if I do it in different blob-objects, the seams are
 > visible :-/ Anyone has an idea how to solve this? :-/

To model muscles, you are probably going to have to model bags of goo 
that push against each other, and completely abandon blobs altogether.

Regards,
John


Post a reply to this message

From: David El Tom
Subject: Re: Muscles (702KB MPEG-1)
Date: 5 Jan 2006 04:09:22
Message: <43bce242@news.povray.org>
> 
> MegaPOV used to have a blob-pattern, but for some reason the latest version doesn't
have it anymore :(
> 
> cu!

at least I found a way to fake a blob pattern via usage of functions:

<<<<SNIPPET-START>>>>

//"prove of principle" - blob pattern-function

// number of blob components
#declare blob_component_count = 3;

// arrays holding strength, radius and position for each component
#declare blob_strength = array[blob_component_count];
#declare blob_radii = array[blob_component_count];
#declare blob_positions = array[blob_component_count];

// fill these arrays with something
#declare blob_strength[0]=1.0;
#declare blob_strength[1]=1.2;
#declare blob_strength[2]=-.5;
#declare blob_radii[0]   =1.3;
#declare blob_radii[1]   =1.3;
#declare blob_radii[2]   =1.0;
#declare blob_positions[0] = <-.8,0,0>;
#declare blob_positions[1] = <.8,0,0>;
#declare blob_positions[2] = <.0,.3,0>;


#declare counter = 0;
#declare blob_fcn =
function
{
#while (counter < blob_component_count)
   #local x_pos = blob_positions[counter].x;
   #local y_pos = blob_positions[counter].y;
   #local z_pos = blob_positions[counter].z;
   #local radius_squared = pow(blob_radii[counter],2);
   #if (counter > 0)
     +
   #end //if
   (blob_strength[counter] *
pow((1.0-min(1,((pow((x-x_pos),2)+pow((y-y_pos),2)+pow((z-z_pos),2))/radius_squared))),2))
   #declare counter= counter +1;
#end // while
}


plane
{
   z,0
   pigment
   {
     function{min(1,max(0,blob_fcn(x,y,z)))}
     color_map
     {
       [0 rgb 0]
       [0.2 rgb <1,0,0>]
       [0.4 rgb <0,1,0>]
       [0.6 rgb <0,0,1>]
       [0.8 rgb <0,1,1>]
       [1 rgb 1]
     }
     ramp_wave
   }
}

<<<<SNIPPET-END>>>>

... dave


Post a reply to this message


Attachments:
Download 'blob_fcn.png' (26 KB)

Preview of image 'blob_fcn.png'
blob_fcn.png


 

From: gregjohn
Subject: Re: Muscles (702KB MPEG-1)
Date: 10 Jan 2006 14:25:01
Message: <web.43c409a8ba1490cb40d56c170@news.povray.org>
"Bob Hughes" <omniverse@charter%net> wrote:

> Freaky stuff, Zeger. I'm sure that couldn't be an easy thing to animate.
> Reminds me the people Greg Johnson has created over the past few years but I
> don't remember how he actually makes those guys.
>

First of all, I have a complicated transform that takes anything associated
with a particular limb from Position(time_zero construction) to
Position(function of various movement parameters, including of course IK,
etc.).


Then as far as construction goes, consider the character shown at:
http://news.povray.org/povray.binaries.animations/thread/%3C437563c5%40news.povray.org%3E/

Except for two eyeball-spheres, twenty individual blob-teeth and a
blob-tongue, and a blob-hairdo,   the entire figure is one blob.  The hands
have blob components of strength like 200 or something-- ugly looking
cylinders.

Then for construction of the arm, take for example say the bicep-bone.
First of all, I have cylinders that do not go all the way to the joints,
and then spheres at the joints.  This prevents the spiking which would
otherwise occur. I believe it also reduces the merging together of
bicep-muscle with fore-arm bone.

Then I represent a muscle with one or more elongated spheres.  Any
muscle-bulging that then occurs with arm-bending is an unintended benefit.
 Also consider super-low and super-high strength components in your
experimentation.

I've also not shied away from obtaining a pliable shape via an overkill
number of blob components.  Most of my faces are made with a stack of
fourty to seventy flattened spheres. If I then rotate only the bottom 1/3
of them, I've thereby created a moving jaw.


But John v.S. ultimately had the answer.  Stay away from blobs.  (I'd say
even stay away from povray.)  As a winner of an IRTC anim contest once
said, using povray for character animation must be a complete waste of
time.

Greg
http://pterandon.blogspot.com/


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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