POV-Ray : Newsgroups : povray.binaries.images : An Asteroid macro: first draft [74k] Server Time
4 Oct 2024 07:11:04 EDT (-0400)
  An Asteroid macro: first draft [74k] (Message 12 to 21 of 21)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Steve
Subject: Re: An Asteroid macro: first draft [74k]
Date: 22 Apr 1999 06:10:56
Message: <371E6A78.35BBBFC5@ndirect.co.uk>
It's extremely good, don't know how you did it, worked it all
out, but it's really beautiful.

Cheers
Steve


=?iso-8859-1?Q?J=E9r=E9mie?= Aubouin wrote:
> 
> Hi!
> 
> This is my first post in this group.
> 
> I'm developping an Asteroid macro.
> 
> Here is a first draft.
> 
> Of course, this macro can be greatly improved.
> That's why your comments, advices, etc... are welcomed.
> 
> What do you think of:
>    - the texture ?
>    - the shape ?
>    - the craters ?
> 
> This Asteroide is a blob object made with 600 spheres for the body (positive
> spheres) and 330 spheres for the craters (negative spheres: 30 big crateres and
> 300 small ones).
> 
> ___________________________________________________
> Jrmie Aubouin
> 
> Pour me rpondre, enlever le Z de mon adresse.
> To answer me, remove the Z from my adress.
> 
>   -----------------------------------------------------------------
>  [Image]


Post a reply to this message

From: Lewis
Subject: Re: An Asteroid macro: first draft [74k]
Date: 22 Apr 1999 11:31:06
Message: <371F3321.4BCAB8E4@netvision.net.il>
I don't think any of you actually saw an asteroid, ever...


Post a reply to this message

From: Bryan Valencia
Subject: Re: An Asteroid macro: first draft [74k]
Date: 22 Apr 1999 15:39:24
Message: <371F6CD4.A4CCB27B@gte.net>
Lewis wrote:

> I don't think any of you actually saw an asteroid, ever...

No, but my mom used to make these oatmeal cookies that had to be as
close to asteroids as you can get.

--
Bryan Valencia
Software Services
Software Services Home Page  http://www.209software.com
Pascal for Delphi Programmers  http://www.209software.com/p4dp/Book.html

Resume: Delphi Programmer  http://www.209software.com/resume/resume.html


Post a reply to this message

From: Jérémie Aubouin
Subject: Re: An Asteroid macro: actual code
Date: 22 Apr 1999 18:49:15
Message: <371F98F9.360D93F3@club-internet.fr>
Spider wrote :
> Try to write the blobs into a pre-made .inc file, taht way the parsing should be
> decreaaased to some part.

Simon de Vet wrote :
> BTW, any chance of making something to export to the .blb files? (These are
> supported by Moray, and I think it's a pretty straightforward text format....)

I just made a new version of the macro which can export to moray .blb AND Povray
.inc
files.

Here is the code of the macro :

// Start here

#macro Random(A,B,S)
   A+(B-A)*rand(S)
#end

#declare Asteroid_Texture = texture {
   pigment {
      bozo
      turbulence 1 lambda 2 omega 0.6 octaves 6
      color_map {
         [ 0 color rgb<127,129,129>/255 ]
         [ 1 color rgb<79,81,81>/255  ]
      }
      scale 0.25
   }
   normal {
      average
      normal_map {
         [ 1
            granite 0.6
            turbulence 1 lambda 2.5 omega 0.5 octaves 6
            scale 2
         ]
         [ 1
            leopard 1
            turbulence 0.5 lambda 1.5 omega 0.8 octaves 6
            slope_map {
               [ 0.00 <1.0,0> ]
               [ 0.10 <0.6,1> ]
               [ 1.00 <0.0,0> ]
            }
            scale 0.2
         ]
      }
   }
   finish { ambient 0.2 diffuse 1 }
}

#macro
Asteroid(Nb_Body,Nb_Big_Crater,Nb_Small_Crater,Sca_Ast,Export,file_name,S)
   blob {
      threshold 0.5

      // Output to file
      #if ( (Export=1) | (Export=2) )
         #fopen file_blob file_name write
         #if (Export=2)
            #write (file_blob,"[blob1.0]\n")
            #write (file_blob,"threshold =   0.5\n")
         #else
            #write (file_blob,"blob {\n   threshold 0.5\n")
         #end
      #end
      //

      // Body
      #local Cpt = 0 ;
      #while (Cpt<Nb_Body)
         #local RotX = Random(0,360,S) ;
         #local RotY = Random(0,360,S) ;
         #local PosZ = Random(1.5,2.4,S) ;
         #local Rad  = -PosZ/1.8 + 7/3 ;
         #local Position = Sca_Ast*vrotate(<0,0,PosZ>,<RotX,RotY,0>) ;
         sphere { Position,Rad,1 }

         // Output to file
         #if (Export=2)
            #write (file_blob,"sphere    =   ",Position.x," ",Position.z,"
",Position.y," ",Rad," 1\n")
         #end
         #if (Export=1)
            #write (file_blob,"   sphere { ",Position," , ",Rad," , 1 }\n")
         #end
         //

         #local Cpt = Cpt + 1 ;
      #end

      // Big Craters
      #local Cpt = 0 ;
      #while (Cpt<Nb_Big_Crater)
         #local RotX = Random(0,360,S) ;
         #local RotY = Random(0,360,S) ;
         #local PosZ = Random(2,3,S);
         #local Rad  = PosZ - 1.5 ;
         #local Position = Sca_Ast*vrotate(<0,0,PosZ>,<RotX,RotY,0>) ;
         sphere { Position,Rad,-5 }

         // Output to file
         #if (Export=2)
            #write (file_blob,"sphere    =   ",Position.x," ",Position.z,"
",Position.y," ",Rad," -5\n")
         #end
         #if (Export=1)
            #write (file_blob,"   sphere { ",Position," , ",Rad," , -5 }\n")
         #end
         //

         #local Cpt = Cpt + 1 ;
      #end

      // Small Craters
      #local Cpt = 0 ;
      #while (Cpt<Nb_Small_Crater)
         #local RotX = Random(0,360,S) ;
         #local RotY = Random(0,360,S) ;
         #local PosZ = Random(3,3.5,S) ;
         #local Rad  = PosZ/2 - 1 ;
         #local Position = Sca_Ast*vrotate(<0,0,PosZ>,<RotX,RotY,0>) ;
         sphere { Position,Rad,-1 }

         // Output to file
         #if (Export=2)
            #write (file_blob,"sphere    =   ",Position.x," ",Position.z,"
",Position.y," ",Rad," -1\n")
         #end
         #if (Export=1)
            #write (file_blob,"   sphere { ",Position," , ",Rad," , -1 }\n")
         #end
         //

         #local Cpt = Cpt + 1 ;
      #end
      texture { Asteroid_Texture }

      // Output to file
      #if ( (Export=1) | (Export=2) )
         #if (Export=1)
            #write (file_blob,"   texture { Asteroid_Texture }\n}\n")
         #end
         #fclose file_blob
      #end
      //
   no_shadow
   }
#end

// End of macro

And here is the code for the Asteroid picture I made:

#declare R1 = seed(100) ;
Asteroid(600,30,1200,<1,1,1.5>,0,"",R1)

The parameters:
   Asteroid(
      Number of components for the body ,
      Number of components for the big craters ,
      Number of components for the small craters ,
      Scale vector: scales the position of each component, not the radius ,
      Export parameter: 0=no export / 1=povray .inc export / 2=moray .blb export
,
      Name of the file to export ,
      pseudo-random stream
   )

Of course, these parameters will change in the future.
The macro is still under construction...

With the .blb exporter, I can visualize with Moray where the spheres are. And I
discovered that many are useless. I'll try to decrease this number without
affecting the look of the Asteroid.

I discovered another problem: when I reduce the number of spheres for the body
to 300, the strength of the body is smaller: the holes created by negative
spheres are deeper.

I tried to create more small/sharp craters, but in this case, I need 1200+
components, and many of them are unused (too far from the body).

And I think that many other problems will appear.


Thank you for your suggestions.

I'll try to integrate most of them into a new beta version of the macro.

If you have other ideas, don't hesitate to modify the macro source code.

___________________________________________________



To answer me, remove the Z from my adress.


Post a reply to this message

From: Lewis
Subject: Re: An Asteroid macro: first draft [74k]
Date: 22 Apr 1999 19:46:11
Message: <371FA72C.5FAA02F6@netvision.net.il>
> No, but my mom used to make these oatmeal cookies that had to be as
> close to asteroids as you can get.

Talk about weird!


Post a reply to this message

From: Steve
Subject: Re: An Asteroid macro: actual code
Date: 22 Apr 1999 19:53:23
Message: <371FA060.A324C25A@ndirect.co.uk>
Impressive, I'll have a play with the macro tomorrow.

Thanks
Steve

=?iso-8859-1?Q?J=E9r=E9mie?= Aubouin wrote:
> 
> Spider wrote :
> > Try to write the blobs into a pre-made .inc file, taht way the parsing should be
> > decreaaased to some part.
> 
> Simon de Vet wrote :
> > BTW, any chance of making something to export to the .blb files? (These are
> > supported by Moray, and I think it's a pretty straightforward text format....)
> 
> I just made a new version of the macro which can export to moray .blb AND Povray
> .inc
> files.
> 
> Here is the code of the macro :
> 
> // Start here
> 
> #macro Random(A,B,S)
>    A(B-A)*rand(S)
> #end
> 
> #declare Asteroid_Texture = texture {
>    pigment {
>       bozo
>       turbulence 1 lambda 2 omega 0.6 octaves 6
>       color_map {
>          [ 0 color rgb<127,129,129>/255 ]
>          [ 1 color rgb<79,81,81>/255  ]
>       }
>       scale 0.25
>    }
>    normal {
>       average
>       normal_map {
>          [ 1
>             granite 0.6
>             turbulence 1 lambda 2.5 omega 0.5 octaves 6
>             scale 2
>          ]
>          [ 1
>             leopard 1
>             turbulence 0.5 lambda 1.5 omega 0.8 octaves 6
>             slope_map {
>                [ 0.00 <1.0,0> ]
>                [ 0.10 <0.6,1> ]
>                [ 1.00 <0.0,0> ]
>             }
>             scale 0.2
>          ]
>       }
>    }
>    finish { ambient 0.2 diffuse 1 }
> }
> 
> #macro
> Asteroid(Nb_Body,Nb_Big_Crater,Nb_Small_Crater,Sca_Ast,Export,file_name,S)
>    blob {
>       threshold 0.5
> 
>       // Output to file
>       #if ( (Export=1) | (Export=2) )
>          #fopen file_blob file_name write
>          #if (Export=2)
>             #write (file_blob,"[blob1.0]\n")
>             #write (file_blob,"threshold =   0.5\n")
>          #else
>             #write (file_blob,"blob {\n   threshold 0.5\n")
>          #end
>       #end
>       //
> 
>       // Body
>       #local Cpt = 0 ;
>       #while (Cpt<Nb_Body)
>          #local RotX = Random(0,360,S) ;
>          #local RotY = Random(0,360,S) ;
>          #local PosZ = Random(1.5,2.4,S) ;
>          #local Rad  = -PosZ/1.8  7/3 ;
>          #local Position = Sca_Ast*vrotate(<0,0,PosZ>,<RotX,RotY,0>) ;
>          sphere { Position,Rad,1 }
> 
>          // Output to file
>          #if (Export=2)
>             #write (file_blob,"sphere    =   ",Position.x," ",Position.z,"
> ",Position.y," ",Rad," 1\n")
>          #end
>          #if (Export=1)
>             #write (file_blob,"   sphere { ",Position," , ",Rad," , 1 }\n")
>          #end
>          //
> 
>          #local Cpt = Cpt  1 ;
>       #end
> 
>       // Big Craters
>       #local Cpt = 0 ;
>       #while (Cpt<Nb_Big_Crater)
>          #local RotX = Random(0,360,S) ;
>          #local RotY = Random(0,360,S) ;
>          #local PosZ = Random(2,3,S);
>          #local Rad  = PosZ - 1.5 ;
>          #local Position = Sca_Ast*vrotate(<0,0,PosZ>,<RotX,RotY,0>) ;
>          sphere { Position,Rad,-5 }
> 
>          // Output to file
>          #if (Export=2)
>             #write (file_blob,"sphere    =   ",Position.x," ",Position.z,"
> ",Position.y," ",Rad," -5\n")
>          #end
>          #if (Export=1)
>             #write (file_blob,"   sphere { ",Position," , ",Rad," , -5 }\n")
>          #end
>          //
> 
>          #local Cpt = Cpt  1 ;
>       #end
> 
>       // Small Craters
>       #local Cpt = 0 ;
>       #while (Cpt<Nb_Small_Crater)
>          #local RotX = Random(0,360,S) ;
>          #local RotY = Random(0,360,S) ;
>          #local PosZ = Random(3,3.5,S) ;
>          #local Rad  = PosZ/2 - 1 ;
>          #local Position = Sca_Ast*vrotate(<0,0,PosZ>,<RotX,RotY,0>) ;
>          sphere { Position,Rad,-1 }
> 
>          // Output to file
>          #if (Export=2)
>             #write (file_blob,"sphere    =   ",Position.x," ",Position.z,"
> ",Position.y," ",Rad," -1\n")
>          #end
>          #if (Export=1)
>             #write (file_blob,"   sphere { ",Position," , ",Rad," , -1 }\n")
>          #end
>          //
> 
>          #local Cpt = Cpt  1 ;
>       #end
>       texture { Asteroid_Texture }
> 
>       // Output to file
>       #if ( (Export=1) | (Export=2) )
>          #if (Export=1)
>             #write (file_blob,"   texture { Asteroid_Texture }\n}\n")
>          #end
>          #fclose file_blob
>       #end
>       //
>    no_shadow
>    }
> #end
> 
> // End of macro
> 
> And here is the code for the Asteroid picture I made:
> 
> #declare R1 = seed(100) ;
> Asteroid(600,30,1200,<1,1,1.5>,0,"",R1)
> 
> The parameters:
>    Asteroid(
>       Number of components for the body ,
>       Number of components for the big craters ,
>       Number of components for the small craters ,
>       Scale vector: scales the position of each component, not the radius ,
>       Export parameter: 0=no export / 1=povray .inc export / 2=moray .blb export
> ,
>       Name of the file to export ,
>       pseudo-random stream
>    )
> 
> Of course, these parameters will change in the future.
> The macro is still under construction...
> 
> With the .blb exporter, I can visualize with Moray where the spheres are. And I
> discovered that many are useless. I'll try to decrease this number without
> affecting the look of the Asteroid.
> 
> I discovered another problem: when I reduce the number of spheres for the body
> to 300, the strength of the body is smaller: the holes created by negative
> spheres are deeper.
> 
> I tried to create more small/sharp craters, but in this case, I need 1200
> components, and many of them are unused (too far from the body).
> 
> And I think that many other problems will appear.
> 
> Thank you for your suggestions.
> 
> I'll try to integrate most of them into a new beta version of the macro.
> 
> If you have other ideas, don't hesitate to modify the macro source code.
> 
> ___________________________________________________
> Jrmie Aubouin
> 
> Pour me rpondre, enlever le Z de mon adresse.
> To answer me, remove the Z from my adress.


Post a reply to this message

From: Bob Hughes
Subject: Re: An Asteroid macro: first draft [74k]
Date: 23 Apr 1999 00:44:22
Message: <371FEC64.E9B6C80E@aol.com>
I try to think in terms of wearing my glasses or not. Same seems to go
for the difference between the Voyager I and II interplanetary missions
(mostly). I figure everythings bound to be about like that if seen in
person, you know, like Voyager 7 views of space objects were there ever
such a thing to be.


Lewis wrote:
> 
> I don't think any of you actually saw an asteroid, ever...

-- 
 omniVERSE: beyond the universe
  http://members.aol.com/inversez/homepage.htm
 mailto:inv### [at] aolcom?Subject=PoV-News


Post a reply to this message

From: Alan Kong
Subject: Re: An Asteroid macro: first draft [74k]
Date: 23 Apr 1999 02:02:45
Message: <3725fb65.79079867@news.povray.org>
On Thu, 22 Apr 1999 11:39:16 -0700, Bryan Valencia <sof### [at] gtenet>
wrote:

>No, but my mom used to make these oatmeal cookies that had to be as
>close to asteroids as you can get.

  How does one get rid of asteroids? Use "Preparation A"!

-- 
Alan
------------------------------------------------------------------
povray.org - official home of the Persistence of Vision Ray Tracer
news.povray.org - where POV-Ray enthusiasts from around the world
                - get together to exchange ideas and experiences
------------------------------------------------------------------


Post a reply to this message

From: Ken
Subject: Re: An Asteroid macro: first draft [74k]
Date: 23 Apr 1999 03:11:03
Message: <37200E90.FB2340D0@pacbell.net>
Alan Kong wrote:
> 
> On Thu, 22 Apr 1999 11:39:16 -0700, Bryan Valencia <sof### [at] gtenet>
> wrote:
> 
> >No, but my mom used to make these oatmeal cookies that had to be as
> >close to asteroids as you can get.
> 
>   How does one get rid of asteroids? Use "Preparation A"!
> 
> --
> Alan

 "Alan, Alan, Alan" Ken say's to himself while slowly shaking his head
  in disbelief.

  What are we going to do about you and your particular form of humor ?

-- 
Ken Tyler

mailto://tylereng@pacbell.net


Post a reply to this message

From: Bob Hughes
Subject: Re: An Asteroid macro: first draft [74k]
Date: 23 Apr 1999 05:42:12
Message: <37203239.4063F077@aol.com>
It was funny to me... oh-oh.


Ken wrote:
> 
> Alan Kong wrote:
> >
> > On Thu, 22 Apr 1999 11:39:16 -0700, Bryan Valencia <sof### [at] gtenet>
> > wrote:
> >
> > >No, but my mom used to make these oatmeal cookies that had to be as
> > >close to asteroids as you can get.
> >
> >   How does one get rid of asteroids? Use "Preparation A"!
> >
> > --
> > Alan
> 
>  "Alan, Alan, Alan" Ken say's to himself while slowly shaking his head
>   in disbelief.
> 
>   What are we going to do about you and your particular form of humor ?
> 
> --
> Ken Tyler
> 
> mailto://tylereng@pacbell.net

-- 
 omniVERSE: beyond the universe
  http://members.aol.com/inversez/homepage.htm
 mailto:inv### [at] aolcom?Subject=PoV-News


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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