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

Delphi .NET Discussion :

Problèmes pour faire cohabiter 2d et 3d dans mon application dotnet!


Sujet :

Delphi .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut Problèmes pour faire cohabiter 2d et 3d dans mon application dotnet!
    Boujour amis développeurs! ^^
    Voici la suite d'un problème que j'ai déjà expliqué ici. Mon but : créer un moteur 2D cohabitant avec le moteur 3D avec delphi 2009, en dotnet et avec directx 9. Finalement j'ai réussi à utiliser Directdraw mais là, gros problème, le device de directdraw n'est pas le même que le device de direct3d, ce qui fait que bien que les moteurs 2d et 3d marchent très bien tout seuls, je ne suis pas parvenu à les faire fonctionner ensemble...

    J'aimerais donc savoir s'il est possible de faire cohabiter 2d et 3d avec directdraw/direct3d (directgraphics n'existant pas tel quel en dotnet...), si oui comment, sinon avez-vous des liens ou des conseils pour le faire avec direct3d (autres que la foire aux questions)?

    Merci d'avance! <Le temps m'est compté>

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    et bien je te dirais bien de rester en 3D

    je bosse actuellement sur une interface OpenGL...il y a une partie 3D et pour ce qui est de la 2D c'est tout simplement de la 3D en projection orthogonale

    1) activation du ZBuffer, rotations, translations, etc...
    2) rendu 3D
    3) désactivation du ZBuffer, reset de la matrice de projection en orthogonal
    4) rendu 2D
    5) SwapBuffers (comme le swap des surfaces sous DirectX)

    je n'ai pas utilisé DirectX depuis fort longtemps, mais tu dois pouvoir faire cela également
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Merci!
    C'est en effet ce que je comptais faire vu que la voie de directdraw semble également bouchée...
    Pour la désactivation du zbuffer juste après la gestion 3d, pas de problème, en plus vu que le device 3d sera juste passé en argument il n'y aura pas de problème,

    [d'ailleurs juste comme ça en delphi on fait comment pour faire

    constructor classB.create (objetA : classA);
    begin
    objetB:=objetA
    end;

    ]

    mais pour la projection orthogonale et la gestion 2d ensuite, je vois pas trop comment faire... De la même façon qu'avec la 3d, avec des triangles?
    En gros si je comprends bien l'image sera mise à plat et qu'un point soit éloigné de 1 ou de 100, ce sera la même chose...

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par Adryazz Voir le message
    Merci!
    C'est en effet ce que je comptais faire vu que la voie de directdraw semble également bouchée...
    sans compter que DirectDraw est super limité, pas de blending, etc...me semble-t-il.

    >d'ailleurs juste comme ça en delphi on fait comment pour faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    constructor classB.create (objetA : classA);
    begin
    objetB.prop1:=objetA.prop1;
    objetB.prop2:=objetA.prop2;
    ...
    end;
    ]

    Citation Envoyé par Adryazz Voir le message
    mais pour la projection orthogonale et la gestion 2d ensuite, je vois pas trop comment faire... De la même façon qu'avec la 3d, avec des triangles?
    En gros si je comprends bien l'image sera mise à plat et qu'un point soit éloigné de 1 ou de 100, ce sera la même chose...
    sous OpenGL c'est prévu (glOrtho) je ne sais pas s'il y a l'équivalent sous DX, mais en gros il faut une matrice de projection qui ne tient pas compte de Z

    peut-être
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre émérite Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Par défaut
    Si tu veux faire du 2D et 3D en même temps, il faut t'interesser à WPF.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Merci et désolé de ne pas avoir répondu avant (on va dire que j'étais en période de programmation intensive puis en repos. ^^'). Finalement j'ai utilisé le sprite de direct3d pour les images et le font pour le texte qui sont très pratiques et très simples à utiliser.

    constructor classB.create (objetA : classA);
    begin
    objetB.prop1:=objetA.prop1;
    objetB.prop2:=objetA.prop2;
    ...
    end;
    Le problème est justement là, lorsque mon objet à une cinquantaine de propriétés, de fonctions, ... (device de direct3d par exemple) comment l'initialiser en une fois? Sinon pour le reste c'est résolu (j'attends juste cette réponse pour le marquer).

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/11/2011, 10h54
  2. Réponses: 5
    Dernier message: 07/12/2010, 20h49
  3. Faire une aide en ligne dans mon application
    Par Siguillaume dans le forum Débuter
    Réponses: 2
    Dernier message: 05/09/2008, 20h16
  4. [VBA-E] Problème pour faire une boucle dans une userform
    Par Garlim dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/05/2007, 23h10
  5. Réponses: 4
    Dernier message: 09/02/2006, 15h20

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