POV-Ray : Newsgroups : povray.unofficial.patches : Mechsim collisions: with what? : Re: Mechsim collisions: with what? Server Time
12 Jun 2024 12:38:38 EDT (-0400)
  Re: Mechsim collisions: with what?  
From: gregjohn
Date: 19 Oct 2004 12:30:00
Message: <web.417540b52ac6dc3f40d56c170@news.povray.org>
Christoph Hormann <chr### [at] gmxde> wrote:
>
> global_settings {
>    ...
>    mechsim {
>      ...
>      environment {
>        object { ... }
>      }
>    }
> }
>

object{OBJECT_IDENTIFIER} gives an error.  Is it
object OBJECT_IDENTIFIER    ?

Okay, given the code below, would one say I still haven't understood the
manual, or have I chosen a set of conditions that where object-based
collisions are handled poorly?

Thanks for your consideration.  I really have RTFM and I really am that
dense.

// Persistence Of Vision Ray Tracer Scene Description File
// -------------------------------------------------------
// File: @(#)blocks.pov
// Description: mechanics simulation sample scene [without iso-defined
objects]
// Features demonstrated: mechsim
// Creation Date: $ 14 Oct 2002, 16:55:14 $
// Last modified: $ 12 Jul 2004, 22:36:49 $
// Author: Christoph Hormann
// major modifications by Greg M. Johnson
//
// @@ Demonstrating groups and mass-face-collisions.
//
// Render instructions:
// --------------------
//
// First render as still with:
//
// -w320 -h240
//
// Then as animation with:
//
// -w320 -h240 +a0.3 -j +kff70

#version unofficial megapov 1.1;

#include "mechsim.inc"

#declare fn_Env = function { z }

#declare Trans1 =
  transform {
    translate -1.5*<0.7, 0.7, 0>
    rotate -40*z
    translate 1.8*x
    translate 0.5*z
  }

#declare Trans2 =
  transform {
    translate -1.5*<0.7, 0.7, 0>
    rotate 25*z
    translate -2.1*x
    translate 0.5*z
  }

#declare Trans3 =
  transform {
    translate -<4*0.55, 0.55, 0>
    translate 2.9*z
  }

#declare Envy=union{
        sphere{0,2 pigment {rgb 0.5} finish {reflection 0.3} translate -2*z}
        sphere{x*4,1 pigment {rgb 0.5} finish {reflection 0.3} rotate 0*z
translate -2*z}
        sphere{x*4,1 pigment {rgb 0.5} finish {reflection 0.3} rotate 60*z
translate -2*z}
        sphere{x*4,1 pigment {rgb 0.5} finish {reflection 0.3} rotate 120*z
translate -2*z}
        sphere{x*4,1 pigment {rgb 0.5} finish {reflection 0.3} rotate 180*z
translate -2*z}
        sphere{x*4,1 pigment {rgb 0.5} finish {reflection 0.3} rotate 240*z
translate -2*z}
        sphere{x*4,1 pigment {rgb 0.5} finish {reflection 0.3} rotate 300*z
translate -2*z}
        plane{z,-3 pigment {rgb 1 }  finish { ambient 0.05 diffuse 0.45 }}
        }

object{Envy}

global_settings {
  max_trace_level 10
  assumed_gamma 1

  mechsim {
    gravity <0, 0, -9.81>
    method 2
    bounding 3

    environment {
      //function { fn_Env(x, y, z) }
      object Envy
      stiffness 240000
      damping 35000
      friction 0.2, 1.001
    }

    collision {
      2, 2
      stiffness 180000
      damping 30000 //5000
      friction 0.2, 1.001
    }

    #if (clock_on)
      step_count 300 //500
      time_step (1/30)/300 //500

      topology {
 load_file "blocks1.dat"
 save_file "blocks1.dat"
      }
    #else
      step_count 0
      topology {

        #declare Stiff=24000;
        #declare Damp=3000;
        //#declare Stiff=52000;
        //#declare Damp=2500;

        group {
   MechSim_Generate_Grid_Std(<0, 0, 0>, 0.1, 22000, Stiff, Damp, true, <0.7,
0.7, 0.7>, <4, 4, 4>, Trans1, 3)
 }
        group {
   MechSim_Generate_Grid_Std(<0, 0, 0>, 0.1, 22000, Stiff, Damp, true, <0.7,
0.7, 0.7>, <4, 4, 4>, Trans2, 3)
 }
        group {
   MechSim_Generate_Grid_Std(<0, 0, 0>, 0.1, 22000, Stiff, Damp, true,
<0.55, 0.55, 0.55>, <9, 3, 3>, Trans3, 3)
 }
 save_file "blocks1.dat"
      }
    #end

  }
}



//MechSim_Show_All_Objects(-1, true, false, "")
MechSim_Show_Grid(0, 4,4,4, true, false, 0, "")
MechSim_Show_Grid(108, 4,4,4, true, false, 0, "")
MechSim_Show_Grid(216, 9, 3, 3, true, false, 0, "")


camera {
  location    <15, -10, 3.5>*1.4
  direction   y
  sky         z
  up          z
  right       (4/3)*x
  look_at     <0, 0, 0.>
  angle       30
}

light_source {
  <3.2, -0.3, 1.8>*100000
  color rgb <1.6, 1.5, 1.0>
}

sky_sphere {
  pigment {
    gradient z
    color_map {
      [0.00 rgb <0.8,0.9,1.0>]
      [0.10 rgb <0.6,0.7,1.0>]
      [0.25 rgb <0.2,0.3,0.8>]
    }
  }
}

//---------end of SDL
//---------end of SDL


Post a reply to this message

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