1. #1
    Yno
    Yno est déconnecté
    Membre habitué Avatar de Yno
    Inscrit en
    novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 138
    Points : 141
    Points
    141

    Par défaut Questions sur le "moteur de génération des shaders" du NxEngine

    Bonjour à tous ,

    J'avais entendu parler il y a longtemps d'un moteur de génération des shaders au sein du NxEngine, je ne sais pas si c'est toujours d'actualité, mais si ce n'est pas le cas je suppose que ce module doit avoir un équivalent à présent.
    Étant donné que, comme toi Funky, je pense aussi qu'un moteur 3D sans shaders est inconcevable (ou fait trop "vieux" ), eh bien je juge important la bonne intégration des shaders dans un moteur 3D, de préférence de façon transparente puisque comme tu l'avais déjà dit sur l'ancien forum : sur toutes les personnes qui utilisent des moteurs 3D, seul un faible pourcentage sait programmer des shaders.

    Donc voilà, j'aurais quelques questions (adressées à toi Funky, puisque tu es le seul à connaître les sources de ton moteur ) sur ce moteur de génération des shaders.
    Tout d'abord, comment fonctionne-t-il ? Assemble-t-il des bouts de codes de shaders par-ci par-là ? Ensuite, comment arrives-tu à combiner plusieurs effets en un shader (si par exemple l'utilisateur demande l'utilisation de plusieurs effets en même temps sur un même modèle) ? Utilises-tu plutôt ton propre langage de script pour générer tes shaders ?
    Pour finir, comment gères-tu tout ça quand l'utilisateur demande un changement d'effet ? Tu crées et compile automatiquement un nouveau shader pour l'ajouter à la liste des shaders d'un objet (en supposant qu'un objet puisse en avoir plusieurs, pour un éventuel rapide changement d'effet), ou bien il faut que l'utilisateur prévoit à l'avance quels seront tous les effets qui pourront être appliqués sur un objet ?

    Voilà voilà, en ésperant que tu trouveras un peu de temps pour répondre à mes quelques questions...
    Merci

    A+

  2. #2
    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 Yno
    Tout d'abord, comment fonctionne-t-il ?
    Grosso modo tu as deux cas :
    - Le shader est "relativement" stricte (post process, skybox...). A ce moment là, seule une compilation conditionnelle est utilisée
    - Le shader est trés libre au niveau de la conception. A ce moment là, ceux sont des fragments assemblés par le moteur.

    Citation Envoyé par Yno
    Assemble-t-il des bouts de codes de shaders par-ci par-là ?
    Oui si le shader se trouve être classé dans le second critère que j'ai donné ci-dessus

    Citation Envoyé par Yno
    Ensuite, comment arrives-tu à combiner plusieurs effets en un shader (si par exemple l'utilisateur demande l'utilisation de plusieurs effets en même temps sur un même modèle) ?
    Tout dépand de ce que tu entends pas là. Si tu as un exemple précis de ce que tu as en tête je pourrais te repondre.

    Citation Envoyé par Yno
    Utilises-tu plutôt ton propre langage de script pour générer tes shaders ?
    Cela a été envisagé à un moment, mais je ne me suis pas encore décidé sur ce point. Disons que pour l'instant j'utilise du HLSL avec quelques fonctions propriétaires au moteur.

    Citation Envoyé par Yno
    Pour finir, comment gères-tu tout ça quand l'utilisateur demande un changement d'effet ? Tu crées et compile automatiquement un nouveau shader pour l'ajouter à la liste des shaders d'un objet (en supposant qu'un objet puisse en avoir plusieurs, pour un éventuel rapide changement d'effet), ou bien il faut que l'utilisateur prévoit à l'avance quels seront tous les effets qui pourront être appliqués sur un objet ?
    Pour un objet l'utilisateur peut créer x matériaux, il n'a qu'a "switcher" de l'un a l'autre quand il le désire sachant que les matériaux ne sont ni plus ni moins qu'un "frontend" des shaders.
    Dans le cas ou l'utilisateur ne peut pas prévoir les shaders qui seront utilisés (ce qui est quand même extrèmement rare), alors oui une compilation sera requise.

  3. #3
    Yno
    Yno est déconnecté
    Membre habitué Avatar de Yno
    Inscrit en
    novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 138
    Points : 141
    Points
    141

    Par défaut

    C'est sympa d'avoir pris le temps de répondre, merci

    Citation Envoyé par funkydata
    Tout dépand de ce que tu entends pas là. Si tu as un exemple précis de ce que tu as en tête je pourrais te repondre.
    Environement mapping + bump par exemple. M'enfin je pense avoir plus ou moins la réponse à cette question, je suppose que tu as des variables générales dans ton shader (genre Normale, Color, Position, etc...), et que tu les modifie au fur et à mesure, via les portions de code ajoutées lors de la génération du shader ?

    Sinon, j'aurais encore une dernière petite question, un peu HS mais bon, je vais pas ouvrir un sujet pour ça : j'ai vu que tu utilisais ce zoli mesh, que j'ai retrouvé dans le client de EVE :
    - L'as-tu obtenu de cette source ?
    - Si oui, comment t'as fait pour lire leur format 3D ?

    Merci !

  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

    Citation Envoyé par Yno
    Environement mapping + bump par exemple. M'enfin je pense avoir plus ou moins la réponse à cette question, je suppose que tu as des variables générales dans ton shader (genre Normale, Color, Position, etc...), et que tu les modifie au fur et à mesure, via les portions de code ajoutées lors de la génération du shader ?
    En gros oui...

    Citation Envoyé par Yno
    Sinon, j'aurais encore une dernière petite question, un peu HS mais bon, je vais pas ouvrir un sujet pour ça : j'ai vu que tu utilisais ce zoli mesh, que j'ai retrouvé dans le client de EVE :
    - L'as-tu obtenu de cette source ?
    - Si oui, comment t'as fait pour lire leur format 3D ?
    MoDDiB m'a posé la même question tu auras donc la même réponse
    J'avais récupéré quelques modèles (dans celui ci) sur le site d'un groupe de modder pour Freelancer. Ces modèles étaient au format Milkshape. J'ai simplement ensuite fait les conversions nécessaires, la map normale et la map emissive.
    Pour infos ce site à fermé depuis un petit moment déjà et impossible pour le moment de retrouver l'équivalent.

  5. #5
    Yno
    Yno est déconnecté
    Membre habitué Avatar de Yno
    Inscrit en
    novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 138
    Points : 141
    Points
    141

    Par défaut

    Citation Envoyé par funkydata
    Pour infos ce site à fermé depuis un petit moment déjà et impossible pour le moment de retrouver l'équivalent.
    Ah, tant pis.

    Merci pour tes réponses

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

Discussions similaires

  1. Question sur les redirections et le chargement des pages
    Par Leelith dans le forum Développement Web avec .NET
    Réponses: 6
    Dernier message: 13/04/2013, 08h34
  2. Réponses: 4
    Dernier message: 07/08/2012, 15h00
  3. Question sur les valeur min et max des types ?
    Par doommick31 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/04/2010, 17h35
  4. Question sur l'utilisation de l'espace des tables
    Par FREMEN dans le forum Débuter
    Réponses: 1
    Dernier message: 09/05/2008, 12h15
  5. Réponses: 1
    Dernier message: 30/11/2006, 19h35

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