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 :

Faire de la 3D en C#


Sujet :

C#

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut
    Citation Envoyé par smyley Voir le message
    Au fait, à l'époque (il y a quelques années ) j'avais essayé Ogre et c'était vraiment pas mal (réalisé mon petit monde, mis de la physique, importé des objets, la caméra, lumière, skybox, etc...), sauf que je m'y était pris par un chemin assez tordu.
    En fait il est possible d'utiliser Ogre avec le C++/CLI tout en utilisant le C# derrière. J'avais opté pour une structure particulière :
    - Fonctions de calculs, genre caméra et tout : dll en C++ natif, interfacé directement avec Ogre
    - Fonctions de chargement des objets, fichiers sur le disque : C#
    - Fonctions du "jeu" (ou plutôt bac à sable d'amusement 3D), clavier souris et autres : C#
    - Chargement de ogre : dll en C++/CLI
    - Application principale, qui met le tout ensemble : C++/CLI
    Donc il est très bien possible de faire passer n'importe quel objet du C# vers le C++ natif de ogre en faisant à la volée les conversions avec le C++/CLI qui offre beaucoup de flexibilité avec l'utilisation à la fois du C++ natif et du C# et on peut donc continuer de faire la 3D en C# en utilisant un moteur natif, et de ce fait, je pouvais utiliser des libs conçues en C# ou quand je trouvais pas (ou lorsque ce n'était pas compatible), des libs en C++ natif, et tout ça dans le même projet.
    Mais bon, c'était pas de tout repos tout de même ...
    OULA !
    Tu m'interresses beaucoup là !
    Je suis (pour l'instant) parti pour le même genre de délire et .. j'hésite beaucoup (cf post précédant !).
    Tu pourrais détailler ? Si c'était à refaire, tu ferais pareil ? Dans le cadre d'un projet "pro" ?
    Mon projet est en C#, le rendu est prévu en DirectX (pour l'instant MOgre), je dois prévoir des calculs "lourds" qui seront faits avec boost (C++); mais du coup, les échanges C#/C++ et ce que ça va poser comme problèmes.. me calment déjà à l'avance; d'autant que je n'ai jamais fait de C++/CLI...
    Des conseils ?

    --
    ElTchoupi

  2. #22
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par ElTchoupi Voir le message
    Tu pourrais détailler ?
    Non, comme je l'ai dit c'était il y a plusieurs années. Je ne sais même plus où est le dossier du projet (sur quel disque dur ...)
    Citation Envoyé par ElTchoupi Voir le message
    Si c'était à refaire, tu ferais pareil ? Dans le cadre d'un projet "pro" ?
    Là par contre je pense que oui. Grâce au C++/CLI on peut faire tout ce que sais faire le C++ natif avec tous les avantages possibles du Framework. Donc au coup de la création de quelques classes bizarres contenant à la fois des objets managés et natifs (qui vont faire le pont entre les deux mondes) cela je pense reste très intéressant. Et la communication entre le C++/CLI et le C# est extrêmement simple : vu qu'on peut créer de véritables classes managées avec le C++/CLI en C# on ne voit rien de la cacophonie du monde natif et on n'utilise que les objets managés. Tant qu'a faire tu pourrai créer une dll en C# qui contient les classes de bases pour tout les échanges entre C++/CLI et C#, les implémenter en C++/CLI et avec utiliser les objets natifs et les utiliser en C# et n'utilise que les méthodes du monde .NET. J'ai pas dit que c'était simple, mais c'est tout à fait faisable.

  3. #23
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Un grand à tous pour vos réponses !!!

    Dans un premier temps, et même si je ne suis pas pro, je pense que je vais me pencher sur TrueVision (ils propose une "unlimited free trial" version) et je vais voir ce que ça donne!

    Ensuite, j'ai regard les liens qui m'on été passé sur DirectX et OpenGL, et c'est sur qu'il y a moyen de pousser assez loin, mais bon pour l'instant, je pense que je vais mettre trop de temps à maitriser correctement le sujet, mais j'y viendrai je pense! Pour l'instant, je ne pense pas avoir les compétences pour me faire mon propre moteur ^^

    Quand à Ogre... trop compliqué pour moi je n'ai jamais fait de C++/CLI.

    Pour l'instant je ne cherche pas à faire des trucs révolutionnaires ni hyper efficaces, si ça marche, c'est déjà ça , et je perfectionnerait au fur et à mesure.

    Mais donc en tout cas, beaucoup de pistes très interessantes à explorer, ça promet d'être long (mais passionant ! ).
    Donc au final, plein de solutions!

    Une dernière question pour combler ma curiositée: ces API, DirectX et compagnie, comment font elles pour "faire" de la 3D? Dans le cas par exemple d'un cube vu sous un certain angle, ne font elles que calculer les coordonnées 2D de ce que l'on devrait voir à l'écran, pour les dessiner ensuite avec les fonctions de base de dessin? Ne s'agit-il que de maths? Ou bien y a-t-il quelque chose de plus "profond" (inhérent ou non au C#)?
    Sinon j'ai déjà fait mon API moi! (càd simplement avec les fonctions de bases du dessin et un peu de maths, j'arrive à animer un cube (ou autre au final), mais je trouvais ça un peu amateur ).

    Et encore merci d'avoir levé le voile obscur qui planait dans ma tête sur ce domaine .

  4. #24
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    De nos jours les cartes graphiques font une bonne partie des calculs liées à la 3D à l'écran. Elles peuvent appliquer les effets, calculer la luminosité, enfin bref, et donc bien que les apis fassent énormément de calculs, il s'agit surtout d'envoyer les informations sur les géométries à afficher à l'écran et les effets à appliquer sur les carte graphiques qui se chargent du reste.

  5. #25
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Ah! d'ac.

    Je comprend pourquoi ça marchait pas énormément bien !

    Thanks

  6. #26
    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
    Par défaut
    salut

    Dans le cadre de mon ancienne boite (plutot une bonne référence dans le monde de la simulation et de la 3D sur Toulouse et en France (dans une moindre mesure)), nous avons étudié et essayé plusieurs moteurs free ou payant (version d'essai).

    Mon ancienne boite avait opté pour un moteur s'appellant Nova (développé par une boite Toulousaine)... Ce moteur a permis de réaliser 2 simulateurs et ce sans "trop" de difficulté pour nos besoins.

    Maintenant, j'ai changé d'entreprise et j'ai été face à faire un choix de nouveau moteur 3D. Si je t'ai "vanté" TrueVision s'est surtout par rapport au fait que ca marche plutot bien en C# (.Net) et qu'il est "peu" cher...

    Après, je pense, par expérience, que l'on peut très bien developpé un jeu entièrement en C# (après tout, un simulateur a aussi des contraintes de performances que nous avons tout à fait su réaliser par le passé en C#).

    Evidemment, tu auras surement un gain en performance si tu es directement en C++ (non managé) sous Ogre ou Irrlicht. Mais je trouve que , sauf situation vraiment particulière, il est plus "facile" de développer en C# qu'en C++.

    Pour faire du C++ depuis plus de 10 ans et du C# depuis maintenant presque 4 ans, je peux t'avouer sans hésitation que je prefère largement C#. Alors, est-ce lié au framework qui fournit beaucoup de chose en natif ? surement. Mais j'ai juste l'impression que je developpe bien plus rapidemment et sans bugs des applis en C# qu'en C++.

    Donc, je te conseille fortement C# + Moteur 3D

    Après, tu posais une question sur le "comment font-elles pour faire de la 3D" les Api en question ?

    Réponse : En faisant des mathématiques... La 3D en fait sur un ordinateur se "résume" à "peu de chose" près à projeté un monde 3D dans un monde 2D.
    Donc, un moteur 3D fait "bcp" de calcul de projection. Projection qui sont fonction de la position de la caméra, etc... Projection de la lumière qui doit tenir compte des occlusions entre objets, etc... et puis également projection qui permettent de définir une zone de visibilité (l'interet étant de faire en sorte que tout objet hors de cette zone n'a pas besoin d'être rendu (sauf pour les ombrages eventuellement )

    Allez !!! courage, c'est pas si compliqué que cela la 3D quand on utilise un moteur (enfin, pour les aspects basique, bien sur)...
    Cependant, pour faire de la 3D, je conseille la présence d'un bon infographiste dans les parages

    The Monz, Toulouse

  7. #27
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Oui, là je t'avoue que je suis assez motivé, car je voyais la 3D comme quelque chose d'assez difficile à mettre en oeuvre, et finalement, même avec le peu de connaissances et d'expérience que j'ai, je pense pouvoir arriver à quelque chose assez rapidement .

    Et le ratio Performances/Facilité m'indique en effet assez clairement de rester en C# et dans son framework bien douillet, surtout que je ne compte pas faire le nouveau Call Of Duty donc au pire les performances...

    Par contre je ferais peut-être un tour du côté de la simulation/modélisation que je vais redécouvrir avec une nouvelle dimention .

    Quand à TrueVision, je n'ai malheureusement pas encore eu le temps de l'essayer, mais je vais m'y mettre d'ici peu, le temps de régler deux trois autres trucs en cours . Et une bonne "coopération" entre TV et le C# est bien appréciable. Son seul défaut est qu'il est payant, et déjà un peu cher pour un particulier (étudiant ) qui fait ça pour son loisir. Mais je vais me laisser séduire par la version d'essai, et on verra par la suite .

    Cependant, pour faire de la 3D, je conseille la présence d'un bon infographiste dans les parages
    Flûte, j'y avais pas pensé

    Mais si, bien sur . Perso je m'en sort pour les trucs simples, mais j'ai tout un tas de copains qui font ça très bien, donc tout va bien!!

    Enfin dans tous les cas, merci à tout le monde pour les conseils

  8. #28
    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
    Par défaut
    De rien

    Cela dit, la version 6.5 de TV3D (alias TrueVision) propose TOUTES les fonctions de la version payante. LA seule et unique différence réside dans le logo de truevision qui apparait en bas à droite de ta fenètre. Ce n'est pas vraiment un "gros" problème pour des projets perso...(maintenant, je comprends que cela "puisse" géner un peu !

    Bon courage, et n'hésites pas si tu as besoin de conseil sur la 3D, simulation
    The Monz, Toulouse

  9. #29
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    LA seule et unique différence réside dans le logo de truevision qui apparait en bas à droite de ta fenètre. Ce n'est pas vraiment un "gros" problème pour des projets perso...(maintenant, je comprends que cela "puisse" géner un peu !
    Au contraire!!! comme ça je pourrait dire que je suis sponsorisé par TrueVision . Sinon ça me rassure ce que tu dit là!!! c'est une très bonne nouvelle .

    Citation Envoyé par theMonz31 Voir le message
    Bon courage, et n'hésites pas si tu as besoin de conseil sur la 3D, simulation
    No problèmes et merci

  10. #30
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 264
    Par défaut
    Salut à tous !

    Je viens de lire avec intérêt ce topic ...

    A priori, toutes ces bibliothèques sont orientées jeux en 3D. Pensez vous qu'elles sont aussi adaptées pour faire beaucoup plus modestement des graphiques mathématiques en 3D ???

    Merci !

  11. #31
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut
    C'est ce que je reproche sur à XNA, qui est clairement orienté vers le dev pour pc ET xbox..

    True Vision, sur lequel je me penche en ce moment, est tellement haut niveau que, OUI, il y a plein de choses prévues pour les jeux, maintenant, rien ne t'oblige de te servir de tout ça: perso, je n'affiche que des courbes et des objets simples, he ben. c'est juste plus simple !!

    Donc la réponse est OUI (d'ailleurs, qui peut le plus, peut le moins non ?

    --
    ElTchoupi

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2002, 08h31
  2. faire un fichier .ini
    Par florent dans le forum C++Builder
    Réponses: 14
    Dernier message: 31/05/2002, 22h06
  3. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44
  4. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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