[go: up one dir, main page]

Skip to content

First raycasting project, recoding the first fps Wolfenstein 1992.

Notifications You must be signed in to change notification settings

Abensett/11.-Cub3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cub3d

Mon premier RayCaster avec la minilibX.

Table of Contents

  1. Summary
  2. Final Results
  3. Raycasting
  4. Resources

Final Results

Summary

Ce projet est inspiré du jeu Wolfeinstein3D, considéré comme le premier FPS jamais développé. Il vous permettra d’explorer la technique du ray-casting. Votre objectif est de faire une vue dynamique et subjective au sein d’un labyrinthe, dans lequel vous devrez trouver votre chemin.

Rules
  • Couleurs différentes pour le sol et le plafond.
  • Le programme affiche l’image dans une fenêtre et respecte les règles suivantes :
    • Flèches du gauche et droite du clavier pour la rotation de caméra
    • W, A, S et D pour se déplacer
    • ESC et la croix rouge doivent fermer la fenêtre et quitter le programme proprement
    • utilisation d’images de la minilibX (= recoder my_put_pixel)
  • Votre programme doit prendre en premier argument un fichier de description avec extension .cub
    • La map est composée d’uniquement: 0 pour les espaces vides, 1 pour les murs, et N,S,E ou W qui indique la position de départ du joueur et son orientation.
    • La map doit être fermée/entourée de murs, sinon renvoyer une erreur.
    • Mis à part la description de la map, chaque type d’élément peut être séparée par une ou plusieurs lignes vides.
    • La description de la carte sera toujours en dernier dans le fichier, le reste des éléments peut être dans n’importe quel ordre.
    • Sauf pour la map elle-même, les informations de chaque élément peuvent être séparées par un ou plusieurs espace(s).
    • Le premier caractère est l’identifiant, suivi de toutes les informations spécifiques à l’élément dans un ordre:
      - NO ./path_to_the_texture (same pour SO WE EA)
      - F 0,255,255 (R,G,B) (same pour C)
      -> renvoyer "Error\n" sinon

Bonus

  • ombres
  • textures FLOOR and CEILING
  • colisions
  • armes avec recul et munitions
  • bruitages / musique

Raycasting

Ray casting is capable of transforming a limited form of data into a three-dimensional projection with the help of tracing rays from the view point into the viewing volume. The main principle behind ray casting is that rays can be cast and traced in groups based on certain geometric constraints.
The first game built on a ray casting engine to achieve massive success was Wolfenstein 3D, which was released on May 5, 1992.
Modern video games have advanced significantly, with faster CPUs, more memory, and the availability of GPUs to accelerate the computation of 3D graphics. However, most modern video game 3D engines still use an advanced form of ray casting, because it remains the most efficient method to render a 3D image.

Schéma

image image image

In CGI (computer-generated imagery), ray casting is the most basic form of raytracing. Unlike other forms of ray tracing, where rays originate from a light source and bounce off objects to arrive at the observer, in ray casting, they're "cast" directly from the viewpoint. When cast rays intersect an object, the object's color and brightness at that point determines the value of one pixel in the final image. A direction vector represents the orientation of the observer extending forward. A camera planperpendicular to the direction vector, representing the shape of the final rendered image, is also required in most types of ray casting.

Resources

42 Project 121/100

Réalisé avec Lee Francesco

About

First raycasting project, recoding the first fps Wolfenstein 1992.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published