Skip to content
This repository was archived by the owner on Jun 24, 2025. It is now read-only.

arthubhub/LO13

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visualiseur 3D - Projet LO13

Auteur : Arthur BIDET
Filière : Réseaux & Télécommunications
Matière : LO13 — Infographie 3D : théorie et application
Établissement : Université de Technologie de Troyes (UTT)


🧠 Objectif du projet

Ce projet a été développé dans le cadre de l’UE LO13 et vise à concevoir un visualiseur 3D interactif en C avec OpenGL et GLUT. Il permet de visualiser, manipuler et transformer des maillages 3D selon différents modes de rendu, d’éclairage et de projection.


✨ Fonctionnalités principales

  • Initialisation complète de la scène graphique
  • Définition du repère de vue, focalisation, et transformation géométrique
  • Gestion des couleurs d'arrière-plan, de trait et de remplissage
  • Choix entre projection orthogonale et perspective
  • Zoom, translation et rotation dynamiques
  • Ajout et configuration de la source lumineuse
  • Support des ombres et des matériaux
  • Projections, miroirs, symétries selon X, Y, Z
  • Matrices de transformation homogènes (4x4)
  • Mode "carreaux" et repères optionnels
  • Mode d'affichage des lignes de diffusion
  • Affichage d’aide interactif

🏗️ Architecture du projet

.
├── src/ # Fichiers sources (.c)
├── include/ # Fichiers d'en-tête (.h)
├── obj/ # Objets compilés
├── main.c # Point d’entrée du programme
├── Makefile # Script de compilation
└── README.md # Documentation du projet

Modules principaux :

  • main.c: configuration de la fenêtre
  • app.c : initialisation globale
  • input.c : gestion du clavier et de la souris
  • lighting.c : configuration de la source lumineuse/matériaux
  • opengl_state.c : gestion de l’état global OpenGL
  • math_utils : procédures d'opérations sur les vecteurs
  • mash.c : chargement du modèle et des paramètres
  • opengl_state.c : structure opengl
  • renderer.c : rendu visuel des objets et des options
  • transform.c : transformations géométriques, logique d'affichage

🖥️ Lancer le projet

🔧 Prérequis

  • GCC (compilateur C)
  • OpenGL
  • GLUT (FreeGLUT ou autre)

▶️ Compilation

make
./renderer <fichier.mesh>

+ Exemples

  1. Affichage filaire

    image
  2. Affichage filaire avec traitement des parties cachées

    image
  3. Affichage filaire + uni

    image
  4. Ombrage uni

    image
  5. Ombrage uni + filaire

    image
  6. Ombrage uni sur les arrêtes

    image
  7. Ombrage de Phong

    image
  8. Ombrage de Phong + filaire

    image
  9. Ombrage de Phong sur les arrêtes

    image
  10. Repère

    image
  11. Plans et projections

    image
  12. Miroirs

    image
  13. Ombrage au sol

    image
  14. Affichage des carreaux du fichier mesh

    image
  15. Shrink

    image
  16. Lignes de diffusion

    image
  17. Courbure Gaussienne

    image

About

Infographie 3D avec OenGL

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published