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

OpenGL Discussion :

Fragment program en assembleur ARB


Sujet :

OpenGL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut Fragment program en assembleur ARB
    bonjour , je cherche en vain des tutoriels ou tout autres documentations sur l'assembleur ARB
    merci d'avance

  2. #2
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu peux déjà consulter la doc de l'extension, même si ça ne vaut clairement pas un tuto :
    http://oss.sgi.com/projects/ogl-samp...nt_program.txt

    Ensuite tu peux jeter un oeil au code source de Ogre, ils ont une classe pour gérer ça.

    Mais pourquoi diable vouloir utiliser ce genre de shader ? Entre GLSL et Cg, il y a de quoi faire non ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    je suis en stage actuellement et mon projet et de traduire une appli écrite en directX et pixel shader (en assembleur PS2) en une appli portable donc en OpenGL et fragment program (en assembleur ARB).
    malheureusement la doc sur l'assembleur ARB est très rare (ou alors juste j'arrive pas à la trouvé...)

    si quelqu'un d'autre a des infos

  4. #4
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pourquoi tu ne l'écris pas en GLSL ? Ce serait vachement plus simple.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    eh bien tout les pixel shader sont déjà écrit en assembleur PS2, ce qui fait que je n'ai " qu'a " traduire en ARBfp1.0 , ces deux langage se ressemblant quand même beaucoup. En GLSL je devrait recréer tous les algo...
    et pis, ça depend pas non plus que de moi, le patron veut de l'assembleur, donc faut que je m'execute...

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    moi, je suis pour l'assembleur dans les shaders
    sinon, pour la doc, perso, j'utilise celle la qui complete très bien celle ci
    * 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

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Merci a vous deux pour ces réponses.

    Bafman : pourrais tu m'éclairer sur un point ?
    est il possible d'utiliser plusieurs textures en sortie du resultat du fp ?
    aussi j'ai du mal a comprendre comment passer plusieurs textures à mon fp (utilisation de glActiveTexture , FBO..) et surtout comment les nommer dans ce dis fp (à quoi correspont texture[n] ?)

    merci d'avance

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    tu peut utiliser plusieurs texture en entré d'un fp, mais pas en sortie (etant donné que la seule sortie d'un fp c'est le buffer final).
    sinon, pour adresser une unité de texture donné, c'est tout simplement texture[n] avec n le numero de l'unité de texture.
    * 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

  9. #9
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le seul moyen d'écrire sur N textures, c'est de faire N passes avec le shader en changeant à chaque fois la texture de rendu.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    c'est bien dommage ...
    donc Bafman, d'après ce que tu me dit il me suffit donc de générer mes textures avec glGenTexture, les initialiser, et c'est tout?
    ensuite je les retrouve dans le fp sous la forme texture[n] où n est l'identifiant-1 retourné par glGenTexture?
    à quoi sert donc glActiveTexture?

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Citation Envoyé par Laurent Gomila
    Le seul moyen d'écrire sur N textures, c'est de faire N passes avec le shader en changeant à chaque fois la texture de rendu.

    Il me semble pourtant bien, qu il est possible de faire du MRT (multiple Render Target) sous OpenGL. Ce qui fait que l on peut ecrire dans jusqu'a 4 textures en meme temps (limitations actuelles des GPU). En revanche, les textures de sortie devront avoir meme taille et la geometrie elle meme sera identique pour les 4 rendus

  12. #12
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Effectivement. Mais est-ce qu'on peut sortir sur les 4 depuis un même shader ?

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Citation Envoyé par Laurent Gomila
    Effectivement. Mais est-ce qu'on peut sortir sur les 4 depuis un même shader ?
    d'apres ce que j'ai lu, ce que je me souviens et sans avoir moi meme fait de teste, il est possible de faire 4 sorties sur le meme shader (c est d ailleurs tout l interet). Il existe un tres bon article (dans 'GPU Gems 2' je crois) concernant le deferred shading utilise dans un jeu super recent sur Tchernobyl (desole le nom du jeu m'echappe, mais les connaisseurs le reconnaitrons tout de suite)

    De memoire, il faut utilise une syntaxe genre :

    output_color[0] = ...
    output_color[1] = ...
    output_color[2] = ...
    output_color[3] = ...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Très bien , merci à tous , je teste et je vous dirais le résultat ici
    Si quelqu'un a d'autres informations sur les fragments programs en assembleur ARB, je suis prenneur étant donné qu'il y en a très peu sur le net

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    le MRT (Multiple Render Target) est possible sous OpenGl, il faut ajouter la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OPTION ATI_draw_buffers;
    à son fragment program ARB et les targets (4 disponibles ) se nomment result.color[n] avec 0 <= n <= 3.

    autre question : comment nomme t'on dans le fragment program ARB les différentes textures ?? est on obligé de les "activé" (avec glActiveTexture ) ?

    merci d'avance

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    salut à tous,

    quelqu'un sait t'il si l'extension ATI_draw_buffers est compatible avec les cartes Nvidia?

    et si non , si il y a un remplacent ?
    j'ai lu sur le site OpenGL.org l'extension ARB_draw_buffers, mais celle ni ne parrait pas fonctionner...

    si quelqu'un a une idée

    merci d'avance

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par vieurou Voir le message
    quelqu'un sait t'il si l'extension ATI_draw_buffers est compatible avec les cartes Nvidia?
    il suffit de regarder les extension de ta carte.
    * 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

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    j'ai pas de carte Nvidia sous la main pour l'instant, d'ou ma requete...

    je travaille soit sur une ATI x1950 soit ATI firegl

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Jette un oeil au programme OpenGL Extension Viewer (http://jeux.developpez.com/outils/).

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    merci

    j'ai également trouvé ça , si ça peut intéresser quelqu'un : http://www.labri.fr/perso/granier/Op...ideocards.html

Discussions similaires

  1. ARB assembleur et les boucles
    Par vieurou dans le forum OpenGL
    Réponses: 4
    Dernier message: 21/08/2007, 14h21
  2. recuperation des textures dans un fragment program
    Par vieurou dans le forum OpenGL
    Réponses: 5
    Dernier message: 17/08/2007, 18h20
  3. Réponses: 4
    Dernier message: 19/07/2007, 09h05
  4. Fragment & vertex program
    Par charly dans le forum OpenGL
    Réponses: 5
    Dernier message: 19/03/2004, 19h47
  5. fragment program sur geForce4 Ti4200
    Par sebh dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/12/2003, 22h31

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