Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// partage de liens //// une carte des membres//// (apéros) codelab


#1 2017-11-02 12:34:47 Processing, Export pdf en P3D (problème avec lights())

Pascalle
membre
Date d'inscription: 2016-01-21
Messages: 10

Processing, Export pdf en P3D (problème avec lights())



Bonjour, je ne parviens pas à exporter en pdf mon sketch Processing (version 3.2.3)  il est en P3D et il semble ne pas prendre en compte les lights() et le background.
J'ai essayé toutes les méthodes citées ici https://processing.org/reference/librar … index.html
mais rien à faire les ombres lights() n'apparaissent pas sur l'export.
Si quelqu'un a déjà rencontré ce genre de problème, merci d'avance pour votre aide
Je vous joins ci-dessous le code en question


import processing.pdf.*;
import controlP5.*;



ControlP5 cp5;

boolean record;

float angle;
float angleX;
float tailleBox;

float angleVitesse;

float tailleSpheres;

void setup() {



  size(550, 800, P3D);



  cp5 = new ControlP5(this);
  cp5.addSlider("angle")
    .setPosition(30, 20)
    .setSize(150, 10)
    .setRange(0, 360)
    ;


  cp5.addSlider("angleX")
    .setPosition(50, 780)
    .setSize(150, 10)
    .setRange(0, 360)
    ; 

  cp5.addSlider("angleVitesse")
    .setPosition(30, 40)
    .setSize(100, 10)
    .setRange(0, 360)
    ;

  cp5.addSlider("tailleBox")
    .setPosition(330, 20)
    .setSize(150, 10)
    .setRange(10, 60)
    ;


  cp5.addSlider("tailleSpheres")
    .setPosition(330, 40)
    .setSize(100, 10)
    .setRange(-20, 50)
    ;
  ;
}

void draw() {

  //if (record) {
  //  beginRaw(DXF, "output.dxf");
// }


if (record) {
    beginRaw(PDF, "output.pdf");
  }





  noStroke();
  //fill(255,0,0);
  lights();

  for ( int  x = 90; x < width-25; x +=50) {
    for ( int  y = 90; y < height-20; y +=50) {
      pushMatrix();

      translate(x, y, 0);

     
      rotateY(radians(angleVitesse));

   
      sphere(tailleSpheres);


      popMatrix();
    }
  }

  for ( int  x = 90; x < width-50; x +=80   ) {
    for ( int  y = 90; y < height-50; y +=80 ) {

      pushMatrix();

      translate(x, y, 0);

      rotateY(radians(angle));
      rotateX(radians(angleX));

      lights();
     

sphere(tailleBox);

      popMatrix();
    }
  }

  if (record) {
    endRaw();
    record = false;
  }
}

void keyPressed() {
  if (key == 'r') {
    record = true;
  }
}

Hors ligne

 

#2 2017-11-03 04:15:57 Re : Processing, Export pdf en P3D (problème avec lights())

Nnylf
membre
Date d'inscription: 2013-11-30
Messages: 10

Re: Processing, Export pdf en P3D (problème avec lights())



Après un peu de recherche cela semble normal. L'enregistrement via beginRaw / endRaw ne prend en compte que les géométries "primitives" : lignes, triangles.. On conçoit que ça soit plus simple lors d'un export vers un format vectoriel.

Cependant est-ce qu'un export vectoriel t'es bien nécessaire ?
Si ce n'est qu'une question de qualité tu as moyen d'obtenir des images de très bonne facture sans. Par exemple en utilisant saveFrame() ou save() sur une fenêtre assez grande (au besoin, créer un PGraphics à la volée et de la taille souhaitée, en utilisant scale() pour mettre le contenu de draw à la bonne échelle le moment venu).
Et tu peux toujours enregistrer ces images dans un .pdf "après coup".

En revanche s'il te faut absolument du vectoriel, je n'ai pas d'idée de solution. Peut-être qu'un hack chelou donnerait des résultats, mais visiblement internet ne planche pas vraiment sur la question... hmm

Dernière modification par Nnylf (2017-11-03 04:16:54)


Les questions importantes doivent être traitées légèrement,
Les questions sans importance doivent être traitées sérieusement.

Hors ligne

 

#3 2017-11-03 12:02:52 Re : Processing, Export pdf en P3D (problème avec lights())

Pascalle
membre
Date d'inscription: 2016-01-21
Messages: 10

Re: Processing, Export pdf en P3D (problème avec lights())



Merci beaucoup pour cette réponse.
Je pensais en effet à un export vectoriel pour une meilleur qualité mais je vais essayer tout de suite cette méthode.
merci !

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2018