Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4c72b26

Browse files
Update README.md
1 parent 989d473 commit 4c72b26

File tree

1 file changed

+39
-25
lines changed

1 file changed

+39
-25
lines changed

‎README.md‎

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,49 @@
1-
# Project "miniRT - My First RayTracer with miniLibX"
1+
# Project "RAYTRACING ENGINE miniLibX"
22

3-
Summary:
4-
This project focuses on Ray Tracing and graphical rendering using the miniLibX library. It simulates 3D scenes by calculating light interactions with basic geometric shapes (spheres, planes, cylinders). The goal is to render images, simulating realistic lighting effects like ambient and diffuse lighting, and handling object transformations. It involves creating a ray tracer from scratch, utilizing basic mathematical and physical principles.
5-
Mandatory Part:
3+
Description : Développement d’un moteur de RayTracing en C pour la génération d’images 3D à partir de scènes définies par des objets géométriques simples (sphères, plans, cylindres). Le projet inclut la gestion de la lumière (éclairage ambiant, diffuse, etc.), ainsi que des transformations sur les objets (translation, rotation). Il utilise la bibliothèque miniLibX pour l'affichage et la gestion de la fenêtre graphique.
4+
Compétences et technologies utilisées :
65

7-
Objective:
8-
Create a simple Ray Tracer that renders 3D scenes from a scene description file, utilizing basic geometric objects and lighting models.
6+
Langage : C
7+
Graphisme : RayTracing, miniLibX pour l'affichage, gestion des fenêtres et images
8+
Mathématiques : Formules géométriques pour les intersections de rayons, calculs de lumière et transformations d'objets
9+
Gestion de la mémoire : Allocation dynamique et gestion des fuites mémoire
10+
Gestion des erreurs : Validation des fichiers de scène, gestion des erreurs de configuration
911

10-
Key Requirements:
12+
Responsabilités et Réalisations :
1113

12-
Implement Ray Tracing with at least three geometric objects: spheres, planes, and cylinders.
13-
Handle transformations (translation and rotation) of objects, lights, and cameras.
14-
Implement ambient and diffuse lighting, including handling shadows.
15-
Use the miniLibX library for window management and displaying rendered images.
16-
Manage scene input through a structured .rt file with proper error handling for misconfigurations.
14+
Développement du moteur de RayTracing :
15+
Création d'un moteur de RayTracing simple capable de générer des images 3D à partir de scènes définies par des objets géométriques de base (sphères, plans, cylindres).
16+
Implémentation de l'algorithme de RayTracing pour effectuer les intersections de rayons avec les objets et calculer la couleur des pixels à afficher.
17+
Gestion de la lumière ambiante, diffuse et spot, pour offrir un éclairage réaliste dans la scène.
1718

18-
Bonus Part (Optional):
19+
Gestion des objets et transformations :
20+
Implémentation des objets géométriques de base (plan, sphère, cylindre), avec leurs propriétés définies dans un fichier de scène .rt.
21+
Ajout des transformations pour déplacer (translation) et orienter (rotation) les objets dans l’espace 3D, ainsi que le contrôle de leur taille.
22+
Prise en charge des éclairages et de l’orientation des caméras pour donner la perspective correcte.
1923

20-
Objective:
21-
Extend the Ray Tracer with advanced features to enhance the realism and complexity of the renderings.
24+
Utilisation de miniLibX pour l’affichage :
25+
Intégration de miniLibX pour gérer la fenêtre graphique et l'affichage de l'image générée par RayTracing.
26+
Mise en place de l'interface utilisateur avec gestion des événements (fermeture de fenêtre, appui sur la touche ESC) pour quitter proprement le programme.
2227

23-
Key Requirements:
28+
Gestion de la scène à partir de fichiers .rt :
29+
Lecture de fichiers .rt pour décrire la scène avec des éléments comme la lumière, la caméra, et les objets 3D (en respectant une syntaxe rigoureuse pour chaque type d’élément).
30+
Validation des fichiers de scène pour garantir la configuration correcte des objets et éviter les erreurs de syntaxe (affichage de messages d’erreur explicites en cas de problème).
2431

25-
Add specular reflection for Phong shading model.
26-
Implement textures like checkerboard and bump mapping.
27-
Support multiple light sources and more complex objects (e.g., cones, hyperboloids).
28-
Implement multi-spot lighting and color disruption.
32+
Optimisation des performances :
33+
Amélioration de l'algorithme de RayTracing pour générer des images de manière efficace tout en conservant un rendu visuellement correct.
34+
Optimisation de la gestion de la mémoire et des ressources pour éviter les fuites et garantir la stabilité du programme.
2935

30-
Skills Acquired:
36+
Tests et validation :
37+
Création de plusieurs scènes de test avec des configurations variées pour valider le rendu des objets, la gestion de la lumière, et l’application correcte des transformations.
38+
Débogage pour garantir l’absence de fuites mémoire et assurer un comportement sans erreur même en cas de mauvaise configuration du fichier de scène.
3139

32-
Programming in C: Memory management, file handling, and mathematical computations for 3D rendering.
33-
Ray Tracing: Understanding of light-object interactions, reflections, and transformations.
34-
miniLibX: Practical usage for creating graphical windows and handling user input.
35-
Project Management: Use of Git for version control and a Makefile for project building and compilation.
40+
Bonus (optionnels) :
41+
Mise en place de fonctionnalités supplémentaires comme le rendu de textures (ex. : bump-mapping sur une sphère), l’implémentation d’effets de réflexion ou de transparence, et la gestion des ombres douces.
42+
Amélioration du moteur pour rendre des scènes plus complexes, en mettant l’accent sur la gestion des erreurs et la performance.
43+
44+
Résultats :
45+
46+
Génération d’images 3D : Création d'un moteur fonctionnel capable de rendre des scènes réalistes à partir d'une description simple dans un fichier .rt.
47+
Interface utilisateur fluide : Affichage d’images via miniLibX, avec gestion correcte des événements utilisateur pour quitter ou interagir avec la fenêtre.
48+
Validations robustes des entrées : Validation stricte des fichiers .rt et gestion des erreurs pour garantir une expérience sans bugs.
49+
Performances optimisées : Le RayTracing est calculé de manière efficace, avec une gestion optimale de la mémoire et des ressources.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /