Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4613 connectés 

 


Dernière réponse
Sujet : [opengl]cree une texture en temp reel
darkoli la methode que j'utilse te permet de modifier une texture mais tu ne peux pas la mettre a jour directement en accedant à la memoire de la carte video. En fait tu crées une texture comme normalement sur celle que tu avais deja declaré avec OpenGL. Donc le source c'est celui de base pour charger une texture.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
darkoli la methode que j'utilse te permet de modifier une texture mais tu ne peux pas la mettre a jour directement en accedant à la memoire de la carte video. En fait tu crées une texture comme normalement sur celle que tu avais deja declaré avec OpenGL. Donc le source c'est celui de base pour charger une texture.
Hercule Tu ne peux pas toucher à la mémoire video de ta carte graphique (ca serait trop beaux).
Il te faut creer une texture opengl, et recopier ta nouvelle image dans cette texture à l'aide de:
glTexSubImage2D()
 
C'est pas ultra rapide (tu transfers l'image par le bus à chaque fois).
 
http://ask.ii.uib.no/ebt-bin/nph-d [...] /OpenGL_PG
 
Si c'est une animation de quelques images tu peux comme le dit darkoli, creer une texture longue, et tu affiche une des etapes de ton animation en jouant sur les coordonnées des textures,ou sur la matrice de transformation des textures.
MC Y'a un moyen mais j'ai pas le redbook sous la main. Par contre c'est tout sauf rapide!
janoscoder pour format interne et externe je voulais dire:
 
tu dis à OpenGL de charger tes données (dans le format externe), qui peut être RGB888 par ex, sur la carte (parfois, ce n'est pas chargé tout de suite sur la carte, par ex si t'as plus de textures que la mémoire de ta carte) dans un format interne genre RGB565.
 
Si le format externe et l'interne sont les mêmes, et que tu ne demande pas le calcul des mipmaps, pas de conversion à faire, et donc ça va vite. y'a que le transfert AGP ou PCI. Sinon, y'a des conversions et des calculs.
 
Si tu veux faire une vidéo, et pas générer les textures directement, tu peux demander à OpenGL de prédigérer tes données et t'exporter dans le format interne, mais là, pas touche aux données car elles ne sont pas forcément celles que tu crois, mais tu peux faire des vidéos. Sache que le port AGP demande dans pas mal d'implémentations l'utilisation du proc.
darkoli ben il te suffit d'attendre jusqu'a 20 heures ce soir et tu aura un exemple !!!
kick ouais et t'as pas un ptit exemple?
darkoli ben ca c'est possible. Sans probleme je pense tu peux faire ta texture dans une zone memoire (zone ou tu peux aussi mettre une image decompressée : format RGB ou RGBA par exemple). Tu peux le faire en temps réel et je pense pas qu'il devrait y avoir de ralentissement mais il nefaut pas non plus que la texture soit trop grosse.
 
Mais oui c'est possible, je l'ai deja fait pour faire par exemple un slideshow avec des images (comme acdsee) avec des effets 3d en plus. Au lieu de créer des centaines de textures j'en crée une que je modifie a chaque image pour afficxhier les images les unes apres les autres.
kick qu'est-ce que tu entend par format interne et format externe, moi ce que je voudrai c'est pouvoir ecrire dans une zone memoire pour faire la texture et que celle ci soit utilisée dans l'image suivante
janoscoder on peut créer une texture en temps réél et le chargement peut se faire relativement vite, si le format d'image externe et le format interne sont identiques (oublie le S3TC en temps réel)
 
En revanche, lire sur la carte: JAMAIS, l'AGP ça marche très mal dans le sens retour.
 
Il esiste des extensions pour faire un rendu sur une texture.
kick voila,  
est-il possible de creer une texture, pendant l'execution du programme ou bien de modifier directement la surface d'une texture en accedant à son espace memoire (n'est-ce pas sur la carte viedo que l'on stock les texture??)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)