Outils pour utilisateurs

Outils du site


wiki:projets:processing-dsaa1-2017:marine-espinasse

MARINE ESPINASSE

  • Porteur(s) du projet : Marine Espinasse
  • Date : Mars 2017
  • Contexte : Cours de programmation

PROJET 1

Processing & la 3D

Ce premier projet sous Processing est un essai concernant l'importation et la manipulation d'objets 3D sur Processing. Réalisé grâce aux librairies OBJLOADER et OPENGL, qui ne fonctionnent qu'avec la version 1.5 du logiciel (et antérieure peut être également); où je n'ai pas pu intégrer la CONTROLP5 car elle n'est compatible qu'avec les versions 2.0 et ultérieures du logiciel.

3d.jpg

Fichiers nécessaires pour l'utilisation du code

  • La librairie OPENGL pour gérer la 3D et les rendus type textures (même pour les objets non texturés, le rendu des .obj est plus lisse avec cette librairie plutôt qu'avec P3D)

Code du Programme

/*
*
*
*
Marine Espinasse, DSAA 1 Design Graphique
Dans le cadre du cours de M. Muti
Prototype d'un programme permettant d'importer
et de manipuler un objet 3D dans Processing.

ATTENTION : ce programme est compatible avec 
la version 1.5.1 de Processing. Les versions
ultérieures ne prennent pas en charge la 
librairie saito.OBJLoader.

PS : ce programme ne comporte pas la librairie
controlP5 car elle n'est pas, pour sa part, 
prise en charge par cette version de Processing.
*
*
*
*/



import processing.opengl.*; // importe la librairie opengl qui permet de gérer la 3D et les textures dans Processing
import saito.objloader.*; // importe la librairie OBJLoader, qui permet d'importer un objet 3D dans Processing
float rotX;
float rotY;
OBJModel model; // déclare le fait qu'on va avoir besoin un modèle .obj

void setup (){ // initialisation des variables du programme
  size (1920,1080, OPENGL); //défini la taille de notre fenêtre
  model = new OBJModel (this, "dino.obj"); // importe le fichier 3D
  model.enableDebug(); // fontion de debug
  model.scale(5); // redimensionne notre objet 3D
  model.translateToCenter (); // centre l'objet 3D dans la fenêtre
  noStroke(); // ne met pas de contour aux faces de l'objet 3D
}


void draw (){
  background(200); // couleur du fond
  lights (); // intégrer des lumières dans notre environnement 3D
  translate(width/2, height/2);
  rotateX(rotY);
  rotateY(rotX);;
  model.draw ();
}


void mouseDragged() // permet de faire pivoter le modèle 3D en "cliquer-glisser" avec la souris
{
  rotX += (mouseX - pmouseX) * 0.01;
  rotY -= (mouseY - pmouseY) * 0.01;
}

PROJET 2

Pacman via Processing

Ce second projet sous Processing est pour moi une expérimentation de jeu, en rapport potentiel avec mon projet de mémoire comme ébauche de prototype. Plus complexe, il utilise les systèmes de classes et de tableaux. A noter qu'il n'est pas encore tout à fait fonctionnel, il présente en effet des latences dans le contrôle du pacman, le joueur doit presser les touches de déplacement à chaque case pour pouvoir ramasser les billes et le jeu ne prend pas en compte le principe de “vies”.


Code du Programme

wiki/projets/processing-dsaa1-2017/marine-espinasse.txt · Dernière modification: 2017/05/17 00:16 (modification externe)