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 :

C# Managed DirectX Vs C++ DirectX classique


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut C# Managed DirectX Vs C++ DirectX classique
    Bonjour, je suis en train de faire une appli de simulation en utilisant directX. Comme le soft de production des données entrantes de la simul était en c# avec tous pleins d'outils qui vont bien pour les manipuler j'ai pas cherché compliqué et j'ai commencé mon soft de simu en c# avec managed DX3D

    hum hum ...

    Si on prend le même exemple provenant du sdk directX : dans sa version C++ il tourne (sur mon pc) a 350 fps. le même exemple dans sa version c# tourne a 60 fps!!! il est si pourrit que ca le managed DX ?

    Alors je cherche une solution. Est ce que ca serait viable et plus efficace de faire le "moteur graphique" de la simul en C++ avec une série de méthode interface utilisable depuis c# ?

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    plusieurs options

    un moteur 3D en C# gratuit ou pas cher (TrueVision, Nova (cher) peux aussi
    etre utilisé

    Après, attaquer directement DirectX via SlimDX (qui supporte Dx10)

    En effet, MDX (Managed DirectX) n'est plus supporté par microsoft. C'est donc une librairie complètement morte

    Sinon, tu peux aussi te tourner du coté des moteurs C++ gratuit (Ogre, Ihrlich, etc...)

    Après, si tu maitrises C++ et C#, ca peut être aussi simple de faire ton moteur en C++ et de lui fournir les données nécessaires ensuite

    Perso, j'utilise TrueVision en C# et cela me convient parfaitement pour le moment !!!

    En C++, tu iras toujours un peu plus vite que C#. C'est sur. Ta baisse de FPS me surprend quand même dans la mesure ou les tests de microsoft entre DirectX managé et DxC++ n'était qu'autour de 10 % ... de perte en managé !!!

    Voilà

    Et moi, aussi j'ai fait de la simu avec un moteur .Net (basé sur Managed DirectX pour la RATP) et ça fonctionnait parfaitement bien..)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Salut Oui je me doute que ca doit fonctionner correctement MS n'est quand même pas assez merdique pour sortir un MDX a 20% de perf que la version classique. Mais je ne comprends pas d'ou vient un tel écart.

    Je viens de refaire le test avec l'exemple csEnhancedMesh.exe

    en C#/MDX = 90 fps
    en C++/Dx = 465 fps

    J'ai lu un truc comme quoi les exemple MDX du sdk était pas très bien codé par rapport a leur homologues c++. Ca vient peut etre de la.

    Et la relative lenteur de mon soft en terme de fps vient peut du fait que j'ai encapsulé "l'ecran" dirextX dans un userControl pour le coller sur une fenêtre d'appli standard ?

    Par contre je ne savais pas que MDX était abandonné ça m'inquiète plus...

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    oui, tu oublies MDX (en tout cas pour tout projet durable et sérieux)

    Tu bascules sur SlimDX si tu veux rester dans le monde Dx via .Net sinon,
    tu bascules du coté C++ et tu encapsules celà dans un wrapper C++/CLI si tu
    veux garder une partie des dev en C#...

    Voilà...

    Ya pas beaucoup d'autres alternatives

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Bah oui ... mon pb c'est que DX m'est imposé pour la 3D et vu les delais je n'ai pas d'autre choix que de reutiliser tous le serveur de donnée en C#.

    Alors moteur C++ avec DLL d'interFace; XNA ou SlimDX. Y a des avis ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    XNA ou SlimDX... mon avis porterait plutot sur SlimDX.. pourquoi ?

    XNA est basé sur DirectX 9, alors que le 11 sort prochainement.

    SlimDX ayant pour objectif d'être un wrapper et non une librairie "plus" haut niveau comme XNA (qui encapsule pas mal de chose pour cacher DirectX, il est surement préférable de s'appuyer sur SlimDX.

    Par contre, dans les deux cas, il n'y a pas de moteur 3D fourni avec.

    Tout comme DirectX fourni des fonctions, XNA et SlimDX ne sont pas des moteurs 3D qui faciliteront les choses

    Si le temps t'est compté, je ne peux que te conseiller l'usage d'un moteur 3D tout fait

Discussions similaires

  1. DirectX 9 ou DirectX 10
    Par JYGer dans le forum Moteurs 3D
    Réponses: 1
    Dernier message: 28/11/2007, 17h32
  2. [DirectX] Problème dev DirectX 9
    Par axxelius dans le forum Framework .NET
    Réponses: 2
    Dernier message: 17/11/2006, 21h06
  3. directx managed affichage simple mesh
    Par t-die dans le forum DirectX
    Réponses: 3
    Dernier message: 24/05/2006, 09h52
  4. directx managed primitive point
    Par t-die dans le forum DirectX
    Réponses: 2
    Dernier message: 03/05/2006, 13h14
  5. Conseil bon bouquin DirectX (managé)
    Par Sphax dans le forum DirectX
    Réponses: 2
    Dernier message: 13/03/2006, 12h41

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