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 :

Besoin d'aide pour un calcul de périmètre.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cimentage
    Inscrit en
    Septembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Cimentage
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2014
    Messages : 44
    Par défaut Besoin d'aide pour un calcul de périmètre.
    Salut à tous,

    Alors voilà, je voulais savoir si l'un d'entre vous pourrait m'aider sur un calcul à réaliser.

    Je souhaiterais connaître la position relative d'un sprite par rapport à celui de la caméra sur l'axe X, je m'explique :

    Je projette dans un angle de 60 degrés 640 rayons ( ce qui représente donc la largeur de ma fenêtre qui est de 640px ) afin d'afficher des colonnes de pixels à afficher à l'écran, ce qui fonctionne très bien pour afficher mon rendu de murs.
    Néanmoins, pour la gestion de l'affichage des sprites, je voudrais que ceux-ci s'affichent sur l'axe X de l'écran en fonction de l'angle de la caméra.

    J'ai pensé à ceci, sachant que 60 degrés * 6 = 360 degrés, dans mon cas de figure, le sprite pourrait avoir une position allant donc de 0 jusqu'à 3840 car 640*6 = 3840px, évidemment, il ne serait visible que si sa position est comprise entre 0 et 640.

    Voici un screenshot pour vous exposer le problème de manière plus claire :
    https://image.noelshack.com/fichiers...791634-ops.png

    Dans le cas de figure de ce screenshot, la formule trouvée ( celle que je cherche donc désespérément ) permettrait d'afficher mon sprite à gauche de l'écran du rendu 3D.

    Merci à vous de bien vouloir m'éclairer sur une éventuelle démarche à suivre. :-)

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je ne trouve pas très clair ton explication.

    Je souhaiterais connaître la position relative d'un sprite par rapport à celui de la caméra sur l'axe X, je m'explique :
    Normalement pythagore suffit.

    Dans le cas de figure de ce screenshot, la formule trouvée ( celle que je cherche donc désespérément ) permettrait d'afficher mon sprite à gauche de l'écran du rendu 3D.
    Si ton but est d'afficher un sprite sur ton rendu 3D alors , on parle de chose très différente , de base je vois pas le souci , tu l'affiche comme n'importe quel model 3D , sauf que le sprite fera tjs face a la caméra.

    Petite info au cas ou :
    Tu prend des position 3D , tu leur fait ton calcul de la matrice de projection et tu retrouve les coordonnés 2D (de ton écran).
    Tu as des coordonné 2D a l'écran tu fait l'inverse de la matrice de projection et tu as sa position en 3D.

  3. #3
    Membre averti
    Homme Profil pro
    Cimentage
    Inscrit en
    Septembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Cimentage
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2014
    Messages : 44
    Par défaut
    Salut Kannagi,

    Il ne s'agit pas d'une réelle 3D à proprement-parler mais d'une simulation, ( tout est en 2D en fait, y compris le rendu en pseudo 3D, c'est par effet de raycasting que j'obtiens mes perspectives en temps réel ).

    J'aimerais savoir comment je pourrais faire pour déterminer cet angle vis à vis du sprite, y a certainement moyen si je connais
    -Les positions (x,y) du sprite
    -Les positions (x,y) de la camera
    -L'angle de la caméra

    Néanmoins, je n'arrive pas trop à concerter tout ça pour obtenir l'effet escompté :-)

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je n'ai jamais fait de raycasting.
    Mais si tu veux mon avis , j'ai l'impression que ce n'est pas toi qui l'a codé le raycasting.

    Parce que :
    J'aimerais savoir comment je pourrais faire pour déterminer cet angle vis à vis du sprite, y a certainement moyen si je connais
    -Les positions (x,y) du sprite
    -Les positions (x,y) de la camera
    -L'angle de la caméra
    Oui tu as les coordonnées 2D , donc il faut que tu connaisse quel sont les transformations faite pour transformé la 2D (vue de dessus) en pseudo 3D perspective , pour pouvoir afficher ton sprite dans le rendu "3D".

  5. #5
    Membre averti
    Homme Profil pro
    Cimentage
    Inscrit en
    Septembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Cimentage
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2014
    Messages : 44
    Par défaut
    Euh, si, je l'ai conçu moi-même de A à Z, j'ai même posté un tutorial sur YouTube sur le fonctionnement du raycasting, je travaille sur ce projet depuis 3 semaines donc les réflexions de ce genre, je peux m'en passer, restons dans le cadre de l'entraide, merci.

    D'ailleurs, je réussi très bien à afficher mes sprites, mais je veux procéder d'une autre façon pour pouvoir les afficher intégralement.

    Voici le problème que je rencontre lorsque j'utilise ma méthode d'intersection ( lorsqu'un rayon détecte le centre d'un sprite en l'occurrence ) :

    https://gyazo.com/e9bb0b0b883aff2c599889772febee9b

    Le sprite disparaît ( logique ) lorsque j'arrive à sa moitié et la méthode que j'essaye d'appliquer ( donc la raison de ce topic ) est une méthode qui fonctionnera nickel sans besoin de tester les intersections, donc plus optimisée, plus rapide, et sans problème d'affichage, maintenant, je venais juste ici pour avoir un coup de pouce sur une idée de calcul.

  6. #6
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Il faut savoir bien présenter son probleme entre comment faire et vouloir optimiser.
    Si tu ne savais pas faire , ma remarque n'était pas tout a fait illégitime.

    Citation Envoyé par FrostfallDelphi Voir le message
    Le sprite disparaît ( logique ) lorsque j'arrive à sa moitié et la méthode que j'essaye d'appliquer ( donc la raison de ce topic ) est une méthode qui fonctionnera nickel sans besoin de tester les intersections, donc plus optimisée, plus rapide, et sans problème d'affichage, maintenant, je venais juste ici pour avoir un coup de pouce sur une idée de calcul.
    Vu que le rendu est assez 'statique' tu peux faire donc :
    -La position X/Y par rapport a l'angle de la camera.
    -Et le zoom par rapport a sa position a la caméra.

    Si tu nous dis quel type de calcul , ben fait le de manière empirique , sauf si tu a sous les yeux les calculs du raycasting et que tu les réduits a des formes très simples.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    "Take It Easy"

    Franchement, la fausse 3D en 2017, c'est pas la technologie la plus répandue et j'aurais eu la même remarque que @Kannagi si je n'avais pas compris que "raycasting" dans ce cadre particulier n'est pas celui de l'usage "actuel" ( full 3D à base de calcul matriciel grâce à nos chers, très chers GPU).

    Ton vocabulaire mathématique et ton mode de raisonnement peuvent te paraître simple et évident pour toi, mais pour nous, programmeurs de moins de 50-55 ans, la fausse 3D, c'est totalement "exotique".
    Ton usage de (x,y), on sait même pas si c'est les coordonnées écrans ou le numéro de colonne d'affichage et l’évaluation "z-buffer" du bidule.

    Pour qu'on s'accorde sur le vocabulaire, peux-tu nous donner l'URL de ton tutoriel ?

    Je ne sais pas ce que tu cherches vraiment à optimiser mais le clipping 2D de Sprite est déjà prise en compte automatiquement par toutes les bibliothèques graphiques modernes et elles s'appuient sur le fait que toutes les cartes graphiques modernes ont ce truc "câblé dans le silicium".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour un calcul d'intersection
    Par FrostfallDelphi dans le forum C++
    Réponses: 6
    Dernier message: 08/08/2017, 10h21
  2. besoin d'aide pour le calcul d'un intégral double
    Par okitrinaw dans le forum Fortran
    Réponses: 2
    Dernier message: 18/12/2013, 19h08
  3. Réponses: 1
    Dernier message: 01/10/2008, 11h36
  4. Besoin d'aide Pour une Requete de Calcul Totaux
    Par good speed dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/03/2008, 15h58
  5. Besoin d'aide pour un calcul sur un site
    Par barre dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/02/2007, 08h36

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