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

XNA/Monogame Discussion :

Créer une texture à la volée


Sujet :

XNA/Monogame

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Créer une texture à la volée
    Bonjour,

    Tout d'abord je précise que je suis débutant en 3D et sur XNA donc si je réfléchi pas de la bonne manière, n’hésitez pas à me le dire.

    Je travaille sur un projet qui mélange winform et xna qui permet d'afficher un modèle 3D (jusque la tout va bien).

    Sur ce modèle 3D je dois lui mettre une texture, qui doit être créé à la volée, à partir de coordonnées x, y et z (plus de 8000 points) qui ont une valeur chacune correspondant à une couleur (rouge, jaune, vert).

    Pour info, le modèle représente un mannequin ressemblant à une quille de bowling, et les couleurs représentent le taux d’absorption d'onde radio (DAS) donc les couleurs doivent être placé de manière précise.

    Les premières étapes du logiciel consistent à charger le fichier de coordonnées avec mesures, ensuite je charge le modèle.

    Donc mes questions sont les suivantes :

    Est-il possible de créer une texture à la volée de façon précise? Si oui, comment?

    En cherchant sur le net, j'ai trouver la technique d'UV Mapping. Est-ce une solution viable pour mon problème?

    Est-ce que le modèle 3D doit être créer de façon particulière pour implémenter l'UV mapping? (Pour pouvoir "lier" au fichier .fbx un fichier de texture que je modifierait à la volée avant de le charger)

    J’espère avoir été clair dans mes explications.

    Donc S'il vous plait, aidez moi
    Merci

    Ps. : si vous connaissez des tutos, sur l'UV mapping ou autre, qui pourraient m'aider, je suis preneur.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Il existe ici : http://www.developpez.net/forums/d12...el-texture-2d/ une première solution. Mais je crois que votre second problème c'est de définir quel point de la texture correspond à quel point de votre objet, n'est ce pas ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Mais je crois que votre second problème c'est de définir quel point de la texture correspond à quel point de votre objet, n'est ce pas ?
    Oui c'est bien ça...

  4. #4
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Bonjour,

    Pour le placement de ta texture, il existe des tutos qui indiquent comment mapper une texture depuis un point de vue spécifique. Cela sert notamment pour le rendu des ombres où on plaque les textures d'ombres depuis un point de vue A alors que la scène est rendue depuis un point de vue B.

    Voici un lien vers le tuto en question : http://glasnost.itcarlow.ie/~powerk/...owMapping.html
    (il est en anglais mais très bien expliqué)

    Je pense que c'est une solution qui pourra te permettre de positionner très précisément ta texture sur ton modèle (je pense à l'application de la texture en étant pile poil en face de ton modèle, par exemple).

    Par contre, pour ce qui est du rendu de texture à la volée, je vais peut-être être complètement hors sujet (désolé par avance si c'est le cas) mais j'ai eu à travailler sur la génération d'une texture à la volée (pour mon cas, c'était le calcul des reflets d'une scène sur une surface d'eau). Pour ce faire, je lançais un rendu non pas sur mon écran mais en choisissant un autre device (une variable temporaire) me permettant d'enregistrer ma texture dans une variable Texture2D. Si cela t'intéresse, voici grosso modo à quoi ressemblait mon code :
    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
     
    // La déclaration des variables
    Texture2D reflectionTexture;
    RenderTarget2D reflectionRenderTarget;
     
    ...
     
    // Graphics device utilisé pour le device temporaire
    device.ClipPlanes[0].Plane = clippingPlane;
    device.ClipPlanes[0].IsEnabled = true;
    device.SetRenderTarget(0, reflectionRenderTarget);
    device.Clear(Color.Black);
     
    // Ici, j'appelle ma méthode de rendu de scène (que je ne détaillerai pas : c'est une méthode classique)
    RenderScene();
     
    // Le rendu dans ma texture
    device.ClipPlanes[0].IsEnabled = false;
    device.SetRenderTarget(0, null);
    reflectionTexture = reflectionRenderTarget.GetTexture();
     
    // Une fois le rendu de ma texture réalisé, je réinitialise les graphics pour le rendu normal (c'est-à-dire de nouveau sur l'écran)
    device.Clear(DataManager.GetColor("background.color"));
    En espérant que tout ça réponde en partie à ta problématique.
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

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

Discussions similaires

  1. Créer une dll à la volée
    Par LEK dans le forum Assembleur
    Réponses: 2
    Dernier message: 07/02/2008, 09h49
  2. Créer une énumération à la volée ?
    Par Pol63 dans le forum VB.NET
    Réponses: 4
    Dernier message: 24/08/2007, 13h17
  3. Créer une option à la volée ds un select avec IE
    Par katchi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/01/2007, 09h48
  4. Créer une texture transparente
    Par nicoenz dans le forum OpenGL
    Réponses: 21
    Dernier message: 09/01/2007, 14h24
  5. Réponses: 5
    Dernier message: 09/11/2006, 10h36

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