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

NxEngine Discussion :

[W.I.P.] nxEngine v0.4


Sujet :

NxEngine

  1. #1
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut [W.I.P.] nxEngine v0.4
    J'ouvre une discussion pour parler et vous tenir informé de l'avancement, les modifications et l'ajout de fonctionalités présentes dans cette version.

    Tout d'abord je précise que la "philosophie" du moteur ne changera pas mais quelques parties vont subir des modifications plus ou moins importantes notamment les scènes et leur gestion.

    En fait, maintenant, vous n'allez plus ajouter les élèments de rendu directement dans la scène, mais des structures de type "RenderableNode".
    Ces structures contiennent entre autre 3 éléments :
    • RenderableNode (Données géométriques au sens large)
    • TransformationNode (Transformation)
    • MaterialNode (Plus ou moins un shader managé par le moteur)
    Ensuite les nodes de transformations ont été également modifiés. On ferra toujours la distinction entre les nodes en espace écran et en espace "monde", par contre aucune transformation n'est prédéfinie. Je m'explique :

    Avant, vous ajoutiez un node de transformation et vous modifiez la position, le scale... en modifiant la propriété correspondante.
    Maintenant un node de transformation ne propose rien de spécial au niveau des transformations dans son état d'origine.
    Il faut lui ajouter des éléments de transformations. Vous pouvez ajouter autant d'élements que vous le souhaitez, et c'est là l'avantage car tout ce qui est transformation devient bien plus souple à gérer et donc à modifier.

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    juste une petite note pour parler non pas du concepte, mais du terme utiliser : RenderableNode. En utilisant cette terminologie, on se limite à des noeud de rendu, or, très vite, on se retrouve à ajouter des noeud hors rendu (noeud de son 3D, noeud physique...)
    voila, c'etait ma pensée hautement philosophique du jour
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par bafman
    juste une petite note pour parler non pas du concepte, mais du terme utiliser : RenderableNode. En utilisant cette terminologie, on se limite à des noeud de rendu, or, très vite, on se retrouve à ajouter des noeud hors rendu (noeud de son 3D, noeud physique...)
    voila, c'etait ma pensée hautement philosophique du jour
    Tu as tout à fait raison de souligner la terminologie qui est importante pour s'y retrouver.

    En allant plus dans le détails, en fait, on a une structure de ce goût là :
    • RenderableNode
      • Une partie ou la totalité d'un buffer de données géométriques
    • TransformationNode
      • Element de transformation "standard" (Translation, Rotation...)
      • Element de transformation "physique" (contrôlé par le moteur physique)
      • Element d'animation quelconque
    • MaterialNode
    Bien sur rien n'est obligatoire. Tu peux définir un noeud avec ou sans données géométriques, avec ou sans noeud physique...
    Mais tu as raison sur le point que tu soulèves... surement que "RenderableNode" est un nom mal choisi par rapport au contenu. "GeometryNode" serait sans doute plus adapté

  4. #4
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Salut,
    je comptais, pour le développement de cette version, recruté un collaborateur afin de m'aider au développement de fonctionalités pour le nxEngine.
    Si vous êtes intéressé envoyez moi un mail ou un MP et nous verrons dans quelle mesure une collaboration est possible.

    Je préviens néanmoins les éventuels intéressés qu'il faudra un minimum d'investissement en temps. Si vous ne pouvez pas garantir une disponibilité minimum merci de ne pas donné suite à cet appel.

  5. #5
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    Vu la vitesse à laquelle tu deplois des fonctionnalités ce doit être rude

  6. #6
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par lakitrid
    Vu la vitesse à laquelle tu deplois des fonctionnalités ce doit être rude
    Meuuu non Je ferais bien sur en sorte, que les tâches soit non bloquantes pour l'un comme pour l'autre... Je recrute pas un esclave hein juste quelqu'un qui peut consacrer quelques heures par semaine sur le projet.

  7. #7
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2005
    Messages : 104
    Points : 165
    Points
    165
    Par défaut
    je crois si tu faisais une sorte de job description, on pourrait vite connaître si on répond ou non à la demande. Comme moi par exemple, je n'ai pas assez de visibilité de l'ampleur de la tâche pour répondre où proposer le truc à une connaissance.

  8. #8
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par lougne
    je crois si tu faisais une sorte de job description, on pourrait vite connaître si on répond ou non à la demande. Comme moi par exemple, je n'ai pas assez de visibilité de l'ampleur de la tâche pour répondre où proposer le truc à une connaissance.
    Je pourrais, en effet, simplement je suis plus parti du principe d'adapter la contribution en fonction du profil du candidat que l'inverse...

  9. #9
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    J'ai ajouté un document plus détaillé sur le portail présentant un nouveau concept qui sera utilisé dans la v0.4. Rendez-vous dans votre espace "béta testeur" donc... pour pouvoir le lire.
    Merci de poster ici les commentaires ou questions sur ce document.

  10. #10
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Qui est dispo pour faire 2-3 tests sur la v0.4 ?
    Ces tests consisteront à lancer l'exe me dire si cela fonctionne ou pas, si le rendu est correct et accessoirement le framerate... rien de bien long donc.

  11. #11
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Tout le monde est dispo pour ca non ?
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  12. #12
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Yes, maintenant que j'ai plus de temps, je suis dispo pour tester la 0.4.
    Je t'ai laissé un MP à ce sujet car je ne peux pas accéder à l'espace beta testeur avec mon mot de passe
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  13. #13
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    je pourrais faire quelques test ce soir si besoin et s'il sont aussi basique

  14. #14
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 72
    Points : 135
    Points
    135
    Par défaut
    Ok pour tester aussi, ça prend pas de temps de toutes façon.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Ha....
    Je suis trop occupé c'est dernier temps! Je serais de nouveau disponible en septembre.

  16. #16
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2005
    Messages : 104
    Points : 165
    Points
    165
    Par défaut
    je fais les tests des que possible. Je suis entrain de travailler mes shaders ( que des maths et algorithmes pour image)
    J'en parle bientôt.

  17. #17
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Je pense que tout le monde à suivi la discussion "le futur du projet" et donc l'ajout d'une lib c++ au nxEngine afin de faire la passerelle entre C# et les DLL DirectX.

    J'ai fait un premier test concluant utilisant donc une première version exploitable mais ultra incomplète du nxPlateform.
    Comme j'ai senti une grosse frayeur chez certains lorsqu'ils ont vu 'C++' je vous propose la source de ce test dans le but de vous rassurer
    Vous verrez qu'à votre niveau la syntaxe et l'utilisation du moteur ne change quasiment pas. Je ne met que la fonction destinée à initialiser la totalité de la scène :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public bool Init()
    {
        Engine = new nxEngine();
        Engine.SetGraphicsEngine(new GraphicsEngine(Engine));
    
        if (Engine.Init() == false) return false;
        Engine.OnUpdate += new OnEngineUpdate(Engine_OnUpdate);
        Engine.OnRender += new OnEngineRender(Engine_OnRender);
    
        CameraPivot Camera = new CameraPivot(new Vector3(0.0f, 5.0f, -20.0f), Vector3.Zero);
        Camera.SetDefaultMappers();
    
        DirectLight Light = new DirectLight(new Vector3(-1.0f, -1.0f, -1.0f));
    
        Material ShipMaterial = new Material(Shader.FromFile("gouraud"));
        ShipMaterial["AmbientColor"].Value = new Color(0.1f);
        ShipMaterial["DiffuseColor"].Value = Color.White;
        ShipMaterial["SpecularColor"].Value = Color.Gray;
        ShipMaterial["SpecularPower"].Value = 64.0f;
    
        Model ShipModel = Model.FromFile("af");
        ShipModel.AddPart(ModelPart.FromModel(ShipModel));
        ShipModel.Parts[0].AddMaterial(ShipMaterial);
    
        BitmapFont Font = BitmapFont.FromFile("pr_font_32");
        Font.Kerning = -5;
        FpsLabel = new Label(Font, string.Empty, Color.White);
    
        SceneGraph = new SceneGraph();
        SceneGraph.AddEntity(Camera);
        SceneGraph.AddEntity(Light);
        SceneGraph.AddToRoot(ShipModel);
        SceneGraph.AddToRoot(FpsLabel);
    
        Engine.SceneEngine.AddSceneGraph(SceneGraph);
    
        return true;
    }
    Voilà je fais encore 2-3 tests et je déterminerais si il est plus judicieux d'intégrer directement cette plateforme dans la v0.4 ou laisser cette version encore avec MDX et passer sur la plateforme pour la 0.5.

    J'ai inclu un p'tit screen de la scène en pièce jointe.
    Images attachées Images attachées  

  18. #18
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Je suis trés occupé en ce moment mais j'avance un peu sur le moteur. La DLL C++ a bien avancée et supporte maintenant l'essentiel, pourrait-on dire, des besoins immédiats pour le moteur.
    J'ai également déplacé la lib mathématiques dans la dll C++.

    Je me suis posé la question du scene graph qui a posé pas mal de soucis au niveau de la béta car chacun avait son besoin et au final la structure que j'avais mise au point n'était pas forcément adaptée. Je pense donc "sortir" le scenegraph du moteur afin que chacun puisse faire sa sauce. J'aimerais avoir votre avis sur ce point.

    La philosophie a un peu changée également au niveau des transformations et de l'import de médias, j'en reparlerais d'ici peu. Au niveau de l'import j'ai quasi terminé le support du format Collada. Quasiment car j'ai encore quelques soucis de parsing au niveau des indices à priori. J'ai dans l'idée, qu'à terme, cela devienne le format par défaut du nxEngine.

  19. #19
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Le format Collada n'est pas vraiment fait pour être un format final, il est beaucoup trop lourd. Son but est l'échange entre les différents logiciels de création (c'est pour ça qu'il exporte absolument tout, et au format texte), mais il faut l'éviter pour le stockage final.

  20. #20
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par Laurent Gomila Voir le message
    Le format Collada n'est pas vraiment fait pour être un format final, il est beaucoup trop lourd. Son but est l'échange entre les différents logiciels de création (c'est pour ça qu'il exporte absolument tout, et au format texte), mais il faut l'éviter pour le stockage final.
    Oui je suis d'accord, ce format est bien trop lourd (je l'ai appris à mes dépend ) pour une post-prod. Mais je ne crois pas que le fait de le supporter soit un défaut au contraire, justement, du fait qu'il soit trés ouvert.

Discussions similaires

  1. [NxEngine] Picking possible ?
    Par DiOxy dans le forum NxEngine
    Réponses: 3
    Dernier message: 19/06/2007, 18h33
  2. Réponses: 6
    Dernier message: 30/05/2007, 21h14
  3. Licence de NxEngine
    Par Traroth2 dans le forum NxEngine
    Réponses: 1
    Dernier message: 02/05/2007, 11h17
  4. Présentation de mon moteur 3D (NXEngine)
    Par funkydata dans le forum Projets
    Réponses: 151
    Dernier message: 27/04/2007, 23h52
  5. NXEngine - Moteur 3D C# DX9
    Par funkydata dans le forum Moteurs 3D
    Réponses: 3
    Dernier message: 18/07/2006, 18h28

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