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

DirectX Discussion :

[DX9] Render To Texture + ZBuffer


Sujet :

DirectX

  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 [DX9] Render To Texture + ZBuffer
    Bonjour,
    y-a-t'il un moyen simple de faire un render to texture d'une scène avec le zbuffer actif.
    J'ai une scène que je rend dans une texture qui va me servir de masque pour un "post-effect". Le problème c'est que le rendu de la scène dans la texture ignore complètement le ZBuffer... Si quelqu'un a une solution...

    Merci

  2. #2
    Membre actif Avatar de Sixissor
    Étudiant
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 242
    Points
    242
    Par défaut
    Salut.

    C'est bizarre qu'il n'y ait pas de profondeur dans ta texture...
    Tu actives bien le Z-buffer lorsque tu captures la texture ? lol...

    Sinon voilà un lien vers un tuto Dx / C++ render-to-texture. Je sais qu'il y a 40 000 sur internet mais celui-là est très bien expliqué... et y'a d'autres bons tutos aussi
    Render-to-texture

  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 Sixissor
    Salut.

    C'est bizarre qu'il n'y ait pas de profondeur dans ta texture...
    Tu active bien le Z-buffer lorsque tu captures la texture ? lol...

    Sinon voilà un lien vers un tuto Dx / C++ render-to-texture. Je sais qu'il y a 40 000 sur internet mais celui-là est très bien expliqué... et y'a d'autres bons tutos aussi
    Render-to-texture
    Oui oui j'active bien le zbuffer
    C'est vrai que ce problème est bizarre je suis pas trop sur d'ou il vient mais il se trouve que les objets sont rendus dans l'ordre de tracé... en fait aucune notion de profondeur de champ entre les objets n'est gérée
    Je vais voir ce tuto 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
    Bon, j'avait déjà fait ce qui est dis dans ce tuto... je vois vraiment pas d'où peu venir le problème... à moins que j'ai tellement la tête dedans que je vois pas l'évident mais ca m'étonnerais quand même

  5. #5
    Membre actif Avatar de Sixissor
    Étudiant
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 242
    Points
    242
    Par défaut
    Tu as bien vérifié ces conditions ?
    Rendering to a texture enables many possibilities, but there are also some restrictions you have to take care of.
    1. The depth stencil surface must always be greater or equal to the size of the render target.
    2. The format of the render target and the depth stencil surface must be compatible.
    3. The multisample type must be the same.
    Au pire, essaies de tracer les objets du plus loin au plus près, comme ça l'ordre sera respecté mais bon... Il devrait y avoir plus simple...
    Sinon essaye ça aussi: CodeSampler ou dotnet.org.za

    Mes compétences DirectX sont très limitées
    Autant en OpenGL j'aurais pu essayer de t'aider mais là... Faut que je m'y mette moi !

    Sinon tu veux faire quel effet ?
    Motion Blur ? Glow ? Pseudo HDR ? Ecran télé dans l'espace ... ?

    ++

  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 Sixissor
    Mes compétences DirectX sont très limitées
    Autant en OpenGL j'aurais pu essayer de t'aider mais là... Faut que je m'y mette moi !

    Sinon tu veux faire quel effet ?
    Motion Blur ? Glow ? Pseudo HDR ? Ecran télé dans l'espace ... ?

    ++
    Ben disons que ce qui est quand même bizarre c'est que le rendu est nickel dans la texture... le FSAA fonctionne bien et tout, donc c'est à mon avis ce n'est pas un problême de format de texture ni d'incompatibilité entre le backbuffer et la surface de rendu... Encore si le rendu avait un problème j'aurais pu me tourner vers ces problèmes plus "communs" mais même pas
    Pour ceux qui est de l'effet j'essaye d'implémenter un "emissive glow" via le matérial d'un mesh... Ca fonctionne nickel. Juste ce problème à 3 francs de zbuffer
    Alors ordonner la scène oui, c'est ce que je fais actuellement (à defaut) mais c'est pas trés optimisé ni trés souple d'utilisation...

  7. #7
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par funkydata
    Ben disons que ce qui est quand même bizarre c'est que le rendu est nickel dans la texture... le FSAA fonctionne bien et tout, donc c'est à mon avis ce n'est pas un problême de format de texture ni d'incompatibilité entre le backbuffer et la surface de rendu...
    Si tu utilises du FSAA, tu ne peux pas faire du rendu dans une texture en meme temps. (sauf si tu es déjà passé à d3d10..)
    Pour le rendu dans ta texture, tu dois donc avoir un zbuffer compatible créé sans flags multisample..

    LeGreg

  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 LeGreg
    Si tu utilises du FSAA, tu ne peux pas faire du rendu dans une texture en meme temps. (sauf si tu es déjà passé à d3d10..)
    Pour le rendu dans ta texture, tu dois donc avoir un zbuffer compatible créé sans flags multisample..

    LeGreg

    Ah ben oui, c'est sur !! Je suis vraiment trop nul... je le savais en plus

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

Discussions similaires

  1. Render to Texture / couche alpha
    Par julien_v3ga dans le forum OpenGL
    Réponses: 8
    Dernier message: 15/11/2006, 10h10
  2. [C#][DX9] Render to texture
    Par funkydata dans le forum DirectX
    Réponses: 12
    Dernier message: 23/06/2006, 19h11
  3. render to texture
    Par damienlann dans le forum OpenGL
    Réponses: 46
    Dernier message: 22/06/2006, 16h44
  4. Render to texture
    Par primuus dans le forum DirectX
    Réponses: 1
    Dernier message: 19/04/2006, 03h38
  5. Render to texture???
    Par sebh dans le forum OpenGL
    Réponses: 2
    Dernier message: 17/01/2004, 09h50

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