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

Développement 2D, 3D et Jeux Discussion :

[C++][AntiGrain][DIRECTX] Utilisation d'AGG avec DirectX ?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut [C++][AntiGrain][DIRECTX] Utilisation d'AGG avec DirectX ?
    Bonjour,

    Je suis en train de monter la partie dev d'un projet de jeu 2D, qui doit commencer par une démo PC, pouvant éventuellement évoluer vers un jeu XBOX (par devkit, pas xbna). Du coup, le choix de DirectX s'impose plus ou moins de lui même.
    Etant donné que le rendu recherché est un rendu vectoriel type Flash, je me suis intéressé à la bibliothèque AGG (http://www.antigrain.com/ ), dont j'ai lu le plus grand bien. Le problème, c'est que je n'ai finalement vu aucun exemple concret de jeu utilisant cette bibliothèque.
    Certains ici ont-ils une expérience de cette bibliothèque et un avis sur la possibilité d'utiliser AGG pour du calcul de texture avec DirectX ?

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    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 540
    Par défaut
    J'ai regarde antigrain.
    Commencons par le commencement est-ce que tu sais a quoi sert Direct X et quelle est la philosophie de cette tech ? J'ai pas l'impression que la plupart des gens sachent pertinement a quoi cela sert.
    Direct X c'est une composante logicielle de Windows pour profiter de l'acceleration materielle des dernieres cartes graphiques 3d genre GeForce et compagnie.
    Tu as un processeur graphique et quand tu programmes Direct X tu dis, via les interfaces COM Direct X : dessines-moi un ou des polygones textures ; ce processeur comprend qu'il faille dessiner un polygone donc il va ranger les textures en memoire video et decharger le CPU central du calcul de transformations sur les matrices et afficher les polygones.

    Or toi tu veux faire du traitement d'image,appliquer des filtres sur un ensemble discret de points communement appele buffer...
    Est-ce que tu as deja utilise Photoshop et appliquer ne serait ce qu'un filtre ?
    Pour faire le moindre filtre cela prend quelque secondes..
    Donc dans une boucle de rendu infinie jusqu'a la fin du programme cela prendra toujours ces quelques secondes si tu veux appliquer des filtres en temps reel...
    Je veux dire qu'appeler Direct X pour faire des filtres en temps reel le resultat j'en suis sceptique ne sera pas forcement pertinent.

    Il faut voir si Antigrain propose l'acces a un HDC, HWND mais appeler Direct X pour cela je suis perplexe..
    Rien ne t'empeche d'essayer..

    Par contre si tu veux faire des animations avec des simples bitmaps mais dessinees et retouchees la oui Direct X est vraiment performant

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut
    Pour ce qui est de DirectX, on va dire que je connais les bases. C'est clairement plus au niveau d'AGG que je m'interroge.
    Pour être plus clair dans ce que je veux faire avec antigrain : il ne s'agirait pas pour moi de faire du filtrage de l'image finale, mais d'avoir en entrée mes sprites encodés dans un format vectoriel, puis antigrain qui transforme ce format vectoriel en texture lisible par mon D3DDevice. Le but étant d'avoir un sprite ayant un rendu très lisse même en zoomant.
    On m'a expliqué qu'il faudrait que je passe par une mipmap calculée au chargement du sprite. Si c'est la seule solution, est-ce que je peux attendre un rendu meilleur avec un calcul d'AGG qu'avec une série d'autant de bitmaps ?

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par Bebers Voir le message
    Pour ce qui est de DirectX, on va dire que je connais les bases. C'est clairement plus au niveau d'AGG que je m'interroge.
    Pour être plus clair dans ce que je veux faire avec antigrain : il ne s'agirait pas pour moi de faire du filtrage de l'image finale, mais d'avoir en entrée mes sprites encodés dans un format vectoriel, puis antigrain qui transforme ce format vectoriel en texture lisible par mon D3DDevice. Le but étant d'avoir un sprite ayant un rendu très lisse même en zoomant.
    On m'a expliqué qu'il faudrait que je passe par une mipmap calculée au chargement du sprite. Si c'est la seule solution, est-ce que je peux attendre un rendu meilleur avec un calcul d'AGG qu'avec une série d'autant de bitmaps ?
    Antigrain ne te permettra pas de faire ça de manière intelligente : c'est un rasterizer, ce qui implique la necxessité de passer par le rendu d'une image (en soft) avant l'affichage de cette image - ce qui n'est pas vraiment ce que tu veux. Tu te retrouve avec la série habituelle des problèmes de performance et de qualité graphique qu'offre ce type de solution.

    Mieux vaux pour toi créer un pipeline graphique adapté (modélisation 3D restreinte à un plan par exemple) et utiliser les primitives de rendu usuelles de l'API 3D. Tu évite ainsi une couche intermédiaire qui non peut réduire d'autant ton expressivité, te donner la possibilité de jouer avec les options que l'API te donnes nativement tout en t'offrant les performances que tu souhaites.

    Si ensuite tu as des besoins particuliers, tu pourras toujours évoluer vers une solution plus complexe.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut
    Merci pour cette réponse, qui de plus, corrobore la direction que j'étais en train de prendre

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

Discussions similaires

  1. Comment utiliser le timer de directx avec c#
    Par accion mutante dans le forum C#
    Réponses: 9
    Dernier message: 19/07/2009, 04h36
  2. Webcam avec directx ???
    Par lykim dans le forum DirectX
    Réponses: 9
    Dernier message: 27/05/2004, 12h25
  3. Réponses: 2
    Dernier message: 14/01/2004, 16h21
  4. probleme GRAVE avec directx 9
    Par l'arbre en plastique dans le forum DirectX
    Réponses: 3
    Dernier message: 02/09/2003, 23h59
  5. Réponses: 3
    Dernier message: 27/08/2003, 21h14

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