Besoin d'aide en POV-Ray!!!

Outils (comme KPovmodeler ou Terraform par exemple) permettant de créer des images 3D avec POV-Ray sous Linux.
cocorico88
P'tit timide
P'tit timide
Messages : 4
Inscription : 08 févr. 2010, 15:42

Besoin d'aide en POV-Ray!!!

Message par cocorico88 »

Bonjour ! :D
Je poste sur ce forum car je suis en train de réaliser un projet en POV-Ray, et j'ai vraiment besoin d'aide !
Je voudrais réaliser des roues dentées avec ce langage. :!:
Je cherche des personnes calées en Pov-RAY qui pourraient m'aider !
Cordialement !

olivs
Administrateur
Administrateur
Messages : 2103
Inscription : 28 avr. 2004, 08:23
Localisation : Toulouse
Contact :

Re: Besoin d'aide en POV-Ray!!!

Message par olivs »

je suis désolé mais je n'ai pas touché Pov-ray depuis quelques années.... :-s Par curiosité, ton pb est au niveau de la "modélisation", ou de l'animation? Cela aidera les éventuels candidats à t'apporter un peu d'aide...

Amicalement,
Olivier

cocorico88
P'tit timide
P'tit timide
Messages : 4
Inscription : 08 févr. 2010, 15:42

Re: Besoin d'aide en POV-Ray!!!

Message par cocorico88 »

Juste de la modélisation, j'essaie de faire des choses assez simples comme des translations, des rotations, mais je n'arrive pas à les maîtriser, j'ai vraiment besoin d'aide ...

lastrodamo
Chuchoteur
Chuchoteur
Messages : 23
Inscription : 12 févr. 2010, 00:26

Re: Besoin d'aide en POV-Ray!!!

Message par lastrodamo »

Salut

J'ai passé au moins 8 heures pour créer ce code :shock:
Il fonctionne mais il y a deux bugs que je n'arrive pas à corriger.
Voici donc le code

//-------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------
// Fichier scène PoVRay 3.7 "engrenage.pov"
//
// auteur: Damien Monteillard, 19-Février-2010
// email: lastrodamo@gmail.com
//
// cd /home/damien/povray/test/engrenage/
// povray engrenage.pov +w1024 +h800 +A +FN +KI0 +KF1 +KFI1 +KFF49 +KC
// Rendu
// povray engrenage.pov +w1280 +h1024
// Convertir en mpg
// ffmpeg -f image2 -i engrenage%02d.png engrenage.mpg
// ffmpeg -f image2 -i engrenage%02d.png -s 800x600 -ar 44100 -aspect 4:3 -b 14000k -r 30 -acodec mp3 -ab 64 engrenage.mpg
// convert -delay 4 *.png engrenage.mpg
//-----------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------

#include "colors.inc"
#include "textures.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "shapesq.inc"
// #include "shapes_lo.inc"
#include "functions.inc"
#include "math.inc"
#include "transforms.inc"

// Textures Noire ----------------------------------------------------------------
#declare TextureNoire =
texture{pigment{color rgb<0,0,0>}
finish{diffuse 1 phong 1}}
// Textures Blanche -------------------------------------------------------------
#declare TextureBlanche =
texture{pigment{color rgb<1,1,1>}
finish{diffuse 1 phong 1}}
// Texture Bleue ---------------------------------------------------------------
#declare TextureBleue =
texture{pigment{color rgb<0.28,0.28,0.60>}
finish{diffuse 1 phong 1}}
// Texture Bleue 2 ---------------------------------------------------------------
#declare TextureBleue2 =
texture{
pigment{
// color Navy
// color NavyBlue
color MidnightBlue
}
finish{diffuse 1 phong 1}}
// Texture Grise ---------------------------------------------------------------
#declare TextureGrise =
texture{pigment{color rgb<1,1,1>}
finish{diffuse 1 phong 1}}
// Texture Rouge ---------------------------------------------------------------
#declare TextureRouge =
texture{pigment{color Red}
finish {diffuse 0.9 phong 1}}
// Texture Verte ---------------------------------------------------------------
#declare TextureVerte =
texture{pigment{color Green*0.5}
finish {diffuse 0.9 phong 1}}
// Texture Verte Clair ---------------------------------------------------------
#declare TextureVerte2 =
texture{pigment{color rgb<0.65,1,0>}
finish {diffuse 1 phong 1}}
// Texture Jaune ---------------------------------------------------------------
#declare TextureJaune =
texture{pigment{color rgb<1,1,0>}
finish {diffuse 1 phong 1}}
// Texture Jaune 2 ---------------------------------------------------------------
#declare TextureJaune2 =
texture{pigment{color rgb<0.87,0.78,0.32>}
finish {diffuse 1 phong 1}}
// Texture Violet ---------------------------------------------------------------
#declare TextureViolet =
texture{pigment{color rgb<0.33,0.18,0.58>}
finish {diffuse 1 phong 1}}
// Texture Violet 2 ---------------------------------------------------------------
#declare TextureViolet2 =
texture{pigment{
// crackle
// gradient <0,1,0> turbulence 1.0
bozo
scale 1.0 turbulence 0.75
color_map{
[0.30 color rgb<0.33,0.18,0.58>] // Violet
[0.60 color rgb<0.65,1.00,0.00>] // Vert
// [0.50 color rgb<0.33,0.33,0.69>] // Bleue
[0.60 color rgb<0.87,0.78,0.32>] // Jaune
}
scale 2.0
}
// normal { bumps 0.75 scale 0.02}
finish {diffuse 1 phong 0}}
// Texture Or ------------------------------------------------------------------
#declare TextureOr =
texture{pigment{color rgb<0.87,0.78,0.32>}
normal {
crackle 0.5
// gradient <0,1,0> turbulence 1.0
// bozo
scale 0.15}
finish {phong 1}}

// Texture Metal -----------------------------------------------------------------
#declare TextureMetal =
texture{Silver_Metal}
// Texture Cuivre -----------------------------------------------------------------
#declare TextureCuivre =
texture{Copper_Metal}
// Texture New Brass ---------------------------------------------------------------
#declare TextureNewBrass =
texture{New_Brass}
// Texture Chrome Metal -----------------------------------------------------------
#declare TextureChrome =
texture{Chrome_Metal}
// Texture Sapphire Agate ---------------------------------------------------------
#declare TextureSapphireAgate =
texture{Sapphire_Agate}

// Camera ---------------------------------------------------------------------------------------
camera
{
location <260,260,-260>
// location <0,0,-360>
look_at <0,-140,160>
// look_at <80,-35,0>
rotate <0,0,0>
}

// Source de lumière -----------------------------------------------------------------------------
light_source
{
<2000,2000,-2000>
rgb <1,1,1>
rotate <0,0,0>
}

// Plan (Sol) -----------------------------------------------------------------------------------
//plane {
// <0,1,0>
// 0
// rotate<0,0,0>
// translate<0,0,0>
// texture{TextureBlanche}
//}

// Plan (Mur 1) ----------------------------------------------------------------------------------
//plane {
// <0,0,1>
// 200
// rotate<0,0,0>
// translate<0,0,0>
// texture{TextureBlanche}
//}

#declare engrenage =
union{
// dent -------------------------------------------------------
#declare dent =

difference{
// Epaisseur de l'engrenage ------------------------------------
#declare pz1 =-8;
#declare pz2 = 8;
// Epaisseur de l'engrenage ------------------------------------
#declare pz1d =pz1-1;
#declare pz2d =pz2+1;
// Module ------------------------------------------------------
#declare m = 2.5;
// Pas primitif -----------------------------------------------
#declare p = pi*m;
// Angle de pression ------------------------------------------
#declare a = 20;
// Pas de base ------------------------------------------------
#declare pb = p*cos(a);
// Nombre de dents ---------------------------------------------
#declare Z = 35;
// Angle d'une dent
#declare ad = 360/Z;
// hauteur de dent --------------------------------------------
#declare ha = m;
#declare hf = 1.25*m;
#declare h = ha+hf;
// diamètre primitif -------------------------------------------
#declare d =m*Z;
// diamètre de tête --------------------------------------------
#declare da = d+2*m;
// diamètre de base --------------------------------------------
#declare df = d-2*m;

// développante de cercle ----------------------------------------------
#declare developpante =
difference{
#declare extrusiondeveloppante =
union{
#declare x1 =-d*sin(((pi/2)/9)*1);
#declare y1 = d*cos(((pi/2)/9)*1);
#declare z1 = 0;
#declare x2 =-d*sin(((pi/2)/9)*2);
#declare y2 = d*cos(((pi/2)/9)*2);
#declare z2 = 0;
#declare x3 =-d*sin(((pi/2)/9)*3);
#declare y3 = d*cos(((pi/2)/9)*3);
#declare z3 = 0;
#declare x4 =-d*sin(((pi/2)/9)*4);
#declare y4 = d*cos(((pi/2)/9)*4);
#declare z4 = 0;
#declare x5 =-d*sin(((pi/2)/9)*5);
#declare y5 = d*cos(((pi/2)/9)*5);
#declare z5 = 0;
#declare x6 =-d*sin(((pi/2)/9)*6);
#declare y6 = d*cos(((pi/2)/9)*6);
#declare z6 = 0;
#declare x7 =-d*sin(((pi/2)/9)*7);
#declare y7 = d*cos(((pi/2)/9)*7);
#declare z7 = 0;
#declare x8 =-d*sin(((pi/2)/9)*8);
#declare y8 = d*cos(((pi/2)/9)*8);
#declare z8 = 0;
#declare x9 =-d*sin(((pi/2)/9)*9);
#declare y9 = d*cos(((pi/2)/9)*9);
#declare z9 = 0;

#declare r1 = x1*cos(((pi/2)/9)*1);
#declare r2 = x2*cos(((pi/2)/9)*2);
#declare r3 = x3*cos(((pi/2)/9)*3);
#declare r4 = x4*cos(((pi/2)/9)*4);
#declare r5 = x5*cos(((pi/2)/9)*5);
#declare r6 = x6*cos(((pi/2)/9)*6);
#declare r7 = x7*cos(((pi/2)/9)*7);
#declare r8 = x8*cos(((pi/2)/9)*8);
#declare r9 = x9*cos(((pi/2)/9)*9);

// Extrusion développante -----------------------------------------------
cylinder{
<0,0,pz1>, <0,0,pz2>, r1*2
translate<x1,y1,z1>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r2*2
translate<x2,y2,z2>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r3*2
translate<x3,y3,z3>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r4*2
translate<x4,y4,z4>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r5*2
translate<x5,y5,z5>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r6*2
translate<x6,y6,z6>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r7*2
translate<x7,y7,z7>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r8*2
translate<x8,y8,z8>
}

cylinder{
<0,0,pz1>, <0,0,pz2>, r9*2
translate<x9,y9,z9>

}
} // fin de l'extrusion de la développante de cercle -------------------

object {
extrusiondeveloppante
}

// Découpe développante -----------------------------------------------
#declare decoupedeveloppante =
union{
#declare x1 = d*sin(((pi/2)/9)*1);
#declare y1 = d*cos(((pi/2)/9)*1);
#declare z1 = 0;
#declare x2 = d*sin(((pi/2)/9)*2);
#declare y2 = d*cos(((pi/2)/9)*2);
#declare z2 = 0;
#declare x3 = d*sin(((pi/2)/9)*3);
#declare y3 = d*cos(((pi/2)/9)*3);
#declare z3 = 0;
#declare x4 = d*sin(((pi/2)/9)*4);
#declare y4 = d*cos(((pi/2)/9)*4);
#declare z4 = 0;
#declare x5 = d*sin(((pi/2)/9)*5);
#declare y5 = d*cos(((pi/2)/9)*5);
#declare z5 = 0;
#declare x6 = d*sin(((pi/2)/9)*6);
#declare y6 = d*cos(((pi/2)/9)*6);
#declare z6 = 0;
#declare x7 = d*sin(((pi/2)/9)*7);
#declare y7 = d*cos(((pi/2)/9)*7);
#declare z7 = 0;
#declare x8 = d*sin(((pi/2)/9)*8);
#declare y8 = d*cos(((pi/2)/9)*8);
#declare z8 = 0;
#declare x9 = d*sin(((pi/2)/9)*9);
#declare y9 = d*cos(((pi/2)/9)*9);
#declare z9 = 0;

#declare r1 = x1*cos(((pi/2)/9)*1);
#declare r2 = x2*cos(((pi/2)/9)*2);
#declare r3 = x3*cos(((pi/2)/9)*3);
#declare r4 = x4*cos(((pi/2)/9)*4);
#declare r5 = x5*cos(((pi/2)/9)*5);
#declare r6 = x6*cos(((pi/2)/9)*6);
#declare r7 = x7*cos(((pi/2)/9)*7);
#declare r8 = x8*cos(((pi/2)/9)*8);
#declare r9 = x9*cos(((pi/2)/9)*9);

// Découpe développante -------------------------------------------------
cylinder{
<0,0,pz1d>, <0,0,pz2d>, r1*2
translate<x1,y1,z1>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r2*2
translate<x2,y2,z2>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r3*2
translate<x3,y3,z3>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r4*2
translate<x4,y4,z4>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r5*2
translate<x5,y5,z5>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r6*2
translate<x6,y6,z6>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r7*2
translate<x7,y7,z7>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r8*2
translate<x8,y8,z8>
}

cylinder{
<0,0,pz1d>, <0,0,pz2d>, r9*2
translate<x9,y9,z9>
}
} // fin de la découpe de la développante --------------------------------

object {
decoupedeveloppante
rotate<0,0,-((pi/2)*2.3)*ad>
inverse
}
}

object {
developpante
}

// cercle de tete --------------------------------------------------------
cylinder{
<0,0,pz1d>, <0,0,pz2d>, da
inverse
}
}

#declare s=0;
#while (s<Z)
object {
dent
rotate<0,0,s*ad>
}
#declare s=s+1;
#end

// cylindre de base -------------------------------------------------------
#declare cyldb =
difference{
cylinder{
<0,0,pz1>, <0,0,pz2>, df
}

// cylindre alésage --------------------------------------------------------
cylinder{
<0,0,pz1d>, <0,0,pz2d>, 15
}
}

object {
cyldb
}

}

object {
engrenage
texture{TextureMetal}
rotate<0,0,360*clock>
translate<0,0,0>
}

#declare engrenage2 =
union{
object {
engrenage
texture{TextureMetal}
rotate<0,0,-360*clock>
translate<0,0,0>
}
rotate<0,0,ad>
translate<d*2,0,0>
}

object {
engrenage2
}



Quelqu'un peut-il m'aider à corriger les bugs ? :evil:
1er bug :
J'ai créé une première développante puis une deuxième symétrique.
Pour cette deuxième je n'arrive pas à trouver la relation (l'angle cf. rotate<0,0,-((pi/2)*2.3)*ad>) qui permet de positionner la deuxième développante au bon endroit (J'y suis allé au hasard ... Je n'aime pas trop)
Petite précision la deuxième développante de cercle est une découpe.

2ème bug :
L'axe central du pignon est petit et quand je change la valeur. Rien ne bouge.
cf. <0,0,pz1d>, <0,0,pz2d>, 15 <- ??????

Si tu veux me contacter, voici mon site
http://3dminfographie.com/
Image

Répondre