IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Raycasting en C, un peu perdu


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 2
    Par défaut Raycasting en C, un peu perdu
    Bonjour à tous!

    Mon école veut que je crée un "Wolf3D" en l'honneur du célèbre jeu. J'ai donc discuter durant des heures avec mon ami google, mais je continue à souffrir... J'ai trouvé un tutoriel très intéressant (Tuto Raycasting), mais je suis perdu à un moment.

    Je ne comprends pas l'idée du casting, donc l'"envoie" d'un rayon pour calculer la distance du mur ou objet. D'un point de vue 3D, je comprends l'idée, mais je ne vois pas comment faire en C pour simuler cela.
    J'ai codé une map (char **map), que j'ai mallocer de la largueur de la map(soit 50 pour le moment), et biensur j'ai mallocer chaque sous partie par 50 aussi.

    Ca donne à peu près:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    char     **creat_map(char **map)
    {
        int i;
     
        i = 0;
        map = malloc(sizeof(*map) * (50 + 1));
         /*ici je vérifie le retour de malloc*/
        while (i < 50)
        {
              map[i] = malloc(sizeof(**map) * (50 + 1));
              i++;
         }
        return (map)
    }
    Je cherche pas à ce que vous me donniez le code complet, mais des indices pour que j'avance dans mon projet. Je suis un peu pressé mais ça c'est de ma faute. ^^"
    Donc je reformule, quelqu'un pourrait-il m'aider sur l'idée d'envoyer un rayon pour calculer la distance entre la camera et le mur, s'il vous plaît.

    Merci d'avance. ^^

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 190
    Par défaut
    c'est une question-piège (pour toi) tu as tout le source de POV à ta disposition ...
    soit un peu plus précis dans ta demande.

    A+

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par IenchGaleu Voir le message
    Mon école veut que je crée un "Wolf3D" en l'honneur du célèbre jeu.

    on ne t'as pas donné vraiment le plus simple
    Citation Envoyé par IenchGaleu Voir le message
    Donc je reformule, quelqu'un pourrait-il m'aider sur l'idée d'envoyer un rayon pour calculer la distance entre la camera et le mur, s'il vous plaît.

    Merci d'avance. ^^
    il faut calculer la distance entre le personnage principal et l'intersection du champ de vision avec des éléments du décor.
    Très grossièrement , en utilisant le théorème de Pythagore , tu peux déterminer si le "regard" du personne est en intersection avec un mur c'est ça le principe du RayCasting.
    Ensuite toute la difficulté c'est d'afficher les murs.
    Selon cette distance cela permettra de faire apparaître les murs soit proches ou lointains

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 462
    Par défaut
    Avant de réécrire un moteur 3D, vérifie tout de même que ce soit réellement ce que ton école souhaite (parce que c'est très long). Souvent, les TP de ce genre sont faits pour voir si tu vas savoir te débrouiller rapidement avec OpenGL, par exemple.

  5. #5
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 487
    Par défaut
    Tiens un tek1 venant d'Epitech :p
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

Discussions similaires

  1. nouvelle utilisatrice d'opensuse10.2 un peu perdue
    Par luciedoudou dans le forum SUSE
    Réponses: 4
    Dernier message: 21/05/2007, 16h16
  2. Réponses: 19
    Dernier message: 28/07/2006, 10h57
  3. [PEAR] MVC, templates, Pear,..un peu perdu !!
    Par ciel06 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 28/06/2006, 20h09
  4. Un peu perdu avec sql server!
    Par jiluc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2005, 13h14
  5. Réponses: 5
    Dernier message: 13/06/2005, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo