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

Langage Delphi Discussion :

Interaction, collision 3D (opengl)


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut Interaction, collision 3D (opengl)
    Bonjour,

    Depuis quelques temps déjà j'utilise glscene et delphi dans la création de petits jeu. Je maitrise l'affichage de personnage, d'objets 3d fait sous blender ainsi que les collisions.

    Cependant il me manque des notions qui m'empêche d'avancer, voici un exemple pour mieux comprendre:
    Soit une maison réalisée sous blender et un personnage. A l'heure actuelle je suis capable d'arrêter le personnage si il heurte un mur de la maison mais comment faire pour qu'il puisse y entrer si il passe par la porte?

    Autre problème, dans cette maison il y a des objets avec lesquelles je doit avoir des interactions. Existe t'il une méthode pour les placer automatiquement ou dois-je donner les coordonnées X,Y et Z pour chaque objets au démarrage du jeux?

    En fait c'est assez difficile de savoir comment les professionnel du jeux vidéo font celà et quelle technique est la meilleur donc je tâtonne et pour le coup je demande un peu d'aide parce que là je voit vraiment pas

    Merci!

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 508
    Points : 25 011
    Points
    25 011
    Par défaut
    Pour les Jeux, comme NWN, c'est effectivement une gestion par objet plaçable
    Pour les Obstacles styles "Maisons", certains contenant une sous-zone, la porte n'est qu'un connecteur entre zone, pour une maison type ruine, le modèle contient des murs et des "trous" (tout simplement pas d'objet), en fait, c'est un ensemble d'objet distinct mis à côté des uns et des autres qui forment un ensemble visuellement cohérent (mais ça c'est la tambouille du moteur que l'on en voit, et que tu cherches à créer justement)

    Quand tu dis "dans cette maison", est-ce le même modèle ?
    Dans ce cas, ta maison est creuse, la porte doit être un "trou" dans le mur ou alors tu as 2 murs espacés

    C'est justement pour cela qu'il y a les temps de chargement, il faut charger le modèle 3D, y mettre les plaçables (aussi bien objet statique que les objets qui se déplacent) pour cela il faut gérer chaque objet, car imaginons que tu puisses détruire les objets, il faut savoir que l'objet n'existe plus, donc il te faut ton gestionnaire de map qui s'occupe de faire une composition de sprite t(ben oui, un objet 3D, ça semble complexe, mais ce n'est rien de plus qu'un sprite contextualisé finalement)

    Perso, je n'ai fait que de la 2D, à la main, j'ai géré la création d'un labyrinthe et de fourmis devant aller d'un point A à un point B dans le labyrinthe.
    J'ai pas dépassé le Cube, la Sphere et le Cône avec Open GL
    Je trouve pénible de passer 90% de son temps sur Studio Max alors que le plus interressant c'est l'IHM et l'intéraction entre les objets, j'avais essayé de faire un jeu, en 3D, ça m'a gavé et je suis trop parresseux, à la maison, je préfère y jouer
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    tu n'as jamais entendus parler de "moteur physique" ?
    du genre Havock, PhysX etc ?
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    c'est un ensemble d'objet distinct mis à côté des uns et des autres qui forment un ensemble visuellement cohérent
    En effet ça confirme bien ce que je pensait, c'est que ça vas me faire une paquet d'objets tout ça! Pour en revenir à l'exemple de la maison, admettons que dans mon programme j'arrête le test de collision quand je me trouve en face de la porte, je peut donc entrer dans la maison mais le problème c'est que si je rentre dans un mur depuis l'intérieur de la maison alors je passerai à travers! et si je réactive le test de collision en étant à l'intérieur de cette même maison ça vas entraîner un bug car pour lui il y a déjà une collision en cours (vu que je suis dans l'objet).

    Autre chose que je voulais savoir, c'est au sujet des armes dans les jeux. Dans mon ébauche de jeux, quand je tire je crée un objet dynamiquement (c'est le projectile en fait) puis je test la collision entre le projectile et les autres éléments du jeux. C'est ma façon de faire pour l'instant et je voulais demander si quelqu'un savait quel était la meilleur méthode pour ça.

    Sinon je connais les moteurs de jeux mais comment dire... fournissez moi la doc avec des exemples de bases, assurez moi qu'il s'intègre dans delphi et pas de souci je prend!
    En fait j'ai passer tellement de temps à apprendre à utiliser tout ces outils (delphi + glscene etc.), à me taper des articles et des docs en anglais que pour que je laisse tout ça de côté faudrait que les nouveaux outils soient plus simples, plus rapides à apprendre, à comprendre pour un résultat largement meilleur.

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    bonjour,

    il y a plusieurs solutions, par exemple les portal engine, les bsptree, les octree, et j'en passe. ils répondent tous de façon différente à la même question : comment limité le nombre de test à faire pour faire le rendu ou la détection de collision des objets.

    Mais il existe des moteurs tout fait (Ogre, CrystalSpace...)

    j'ai étudié ces questions il y a quelques années de cela, avant l'arrivée des cartes 3D pour les premiers test
    http://tothpaul.free.fr/sources.php?bp7.wolf3d
    http://tothpaul.free.fr/sources.php?dprgrp.mywin3d
    http://tothpaul.free.fr/sources.php?dprgrp.bsp
    http://www.zoo-logique.org/tothpaul/adk/ogro.php3
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    Ok merci pour les pistes!!

Discussions similaires

  1. detection de collision opengl
    Par mimi_14 dans le forum C++
    Réponses: 2
    Dernier message: 10/02/2010, 20h09
  2. insérer du 3ds dans opengl + collisions + tout quoi ;)
    Par Darknicosh dans le forum OpenGL
    Réponses: 5
    Dernier message: 22/04/2005, 15h14
  3. Gestion de collision et OpenGL
    Par kanux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 08/01/2005, 21h07
  4. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 12h48
  5. Opengl -- Les surfaces
    Par Anonymous dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/05/2002, 10h14

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