Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| On peut pas changer de texture! | |
| | Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: On peut pas changer de texture! Ven 30 Déc 2011 - 21:57 | |
| Bonjour à tous et à Jack, télécharger ceci d'abord: skybox.zipJe travaille sur un petit programme, et j'ai été surpris quand j'ai vu que je ne pouvais pas changer les textures du skybox qui restent telles qu'elles ont été chargées. A moins de détruire le skybox par delete et de le recréer, là on peut changer les textures. Mais pour les besoins de mon programme, je ne peux pas le détruire , et j'ai besoin de changer à plusieurs reprises ses textures de front, back, bottom, top, left et right. - Code:
-
dim chemin$ chemin$="c:\skybox\" scene3d 1:full_space 1 3d_skybox 1 3d_load_texture_bottom 1,chemin$+"bottom1.bmp" 3d_load_texture_top 1,chemin$+"top1.bmp" 3d_load_texture_front 1,chemin$+"front1.bmp" 3d_load_texture_back 1,chemin$+"back1.bmp" 3d_load_texture_right 1,chemin$+"right1.bmp" 3d_load_texture_left 1,chemin$+"left1.bmp" while scancode=0:end_while
3d_load_texture_bottom 1,chemin$+"bottom2.bmp" 3d_load_texture_top 1,chemin$+"top2.bmp" 3d_load_texture_front 1,chemin$+"front2.bmp" 3d_load_texture_back 1,chemin$+"back2.bmp" 3d_load_texture_right 1,chemin$+"right2.bmp" 3d_load_texture_left 1,chemin$+"left2.bmp" wait 500:while scancode=0:end_while terminate
J'ai essayé de faire la même chose avec un 3d_cube ou un 3d_sphere, et là, pire, la première texture s'efface et la deuxième ne vient pas. L'objet 3d redevient gris, comme sans texture. Aussi bien avec 3d_load_texture qu'avec 3d_image_texture, le résultat est pareil! - Code:
-
dim chemin$ chemin$="c:\skybox\" scene3d 1:full_space 1 3d_sphere 1,3:3d_load_texture 1,chemin$+"front1.bmp" while scancode=0:end_while 3d_load_texture 1,chemin$+"sable.bmp"
- Code:
-
dim chemin$ chemin$="c:\skybox\" scene3d 1:full_space 1 image 2:file_load 2,chemin$+"front1.bmp" image 3:file_load 3,chemin$+"sable.bmp" 3d_sphere 1,3:3d_image_texture 1,2 while scancode=0:end_while 3d_image_texture 1,3 Tout cela est d'autant plus surprenant, que l'on peux changer la texture des 3d_mesh et 3d_actor, comme vous allez le voir dans l'exemple ci-joint. - Code:
-
label tourne,fin:dim i,chemin$ chemin$="c:\skybox\" full_space 0:scene3d 1:full_space 1:color 1,100,0,0 cam_position 0,0,5:point_position 0,0,0:i=-90 3d_text 1000,"":3d_position 1000,-5,10,-5:3d_scale 1000,.5,.5,.5 3d_actor 2:3d_load_object 2,chemin$+"weapon.md2" 3d_load_texture 2,chemin$+"weapon.bmp" 3d_position 2,0,-5,-10:3d_scale 2,.35,.35,.35:3d_x_rotate 2,90:3d_z_rotate 2,-90
3d_actor 1:3d_load_object 1,chemin$+"tris.md2" 3d_position 1,0,-5,-10:3d_scale 1,.35,.35,.35:3d_x_rotate 1,90:3d_z_rotate 1,-90
3d_load_texture 1,chemin$+"ctf_blue.bmp":3d_text_change 1000,"ctf_blue.bmp":gosub tourne 3d_load_texture 1,chemin$+"ctf_red.bmp":3d_text_change 1000,"ctf_red.bmp":gosub tourne 3d_load_texture 1,chemin$+"exodus.bmp":3d_text_change 1000,"exodus.bmp":gosub tourne 3d_load_texture 1,chemin$+"gg.bmp":3d_text_change 1000,"gg.bmp":gosub tourne 3d_load_texture 1,chemin$+"toxic.bmp":3d_text_change 1000,"toxic.bmp":gosub tourne goto fin
tourne: while scancode=0:3d_z_rotate 1,i:3d_z_rotate 2,i:i=i+1:end_while:wait 100 return fin: terminate Est-ce Normal ou est-ce un bug? Cordialement Et bonnes fêtes de fin d'année, et que 2012 vous apporte plein de super programmes en PANORAMIC | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: On peut pas changer de texture! Jeu 5 Jan 2012 - 17:46 | |
| Bonsoir amis panoramiciens et à toi oh! grand Jack Je ne sais pas si c'est un bug ou si c'est normal. Bref, téléchargez le dossier skybox.zip de mon post précédent, et essayez le code suivant: - Code:
-
dim ch$ ch$="c:\skybox\" full_space 0:scene3d 1:full_space 1:cam_position 0,4,5:point_position 0,4,-10
3d_skybox 1 3d_load_texture_bottom 1,ch$+"bottom1.bmp" 3d_load_texture_top 1,ch$+"top1.bmp" 3d_load_texture_front 1,ch$+"front1.bmp" 3d_load_texture_back 1,ch$+"back1.bmp" 3d_load_texture_right 1,ch$+"right1.bmp" 3d_load_texture_left 1,ch$+"left1.bmp"
3d_plane 2:3d_scale 2,400,400,1:3d_load_texture 2,ch$+"sable.bmp" 3d_x_rotate 2,90:3d_y_position 2,-1:3d_u_tile 2,10:3d_v_tile 2,10
3d_actor 3:3d_load_object 3,ch$+"tris.md2":3d_load_texture 3,ch$+"gg.bmp" 3d_position 3,0,6,-10:3d_scale 3,.25,.25,.25:3d_x_rotate 3,90:3d_z_rotate 3,-90
while scancode=0:end_while
3d_delete 1 wait 2000 3d_skybox 1 3d_load_texture_bottom 1,ch$+"bottom2.bmp" 3d_load_texture_top 1,ch$+"top2.bmp" 3d_load_texture_front 1,ch$+"front2.bmp" 3d_load_texture_back 1,ch$+"back2.bmp" 3d_load_texture_right 1,ch$+"right2.bmp" 3d_load_texture_left 1,ch$+"left2.bmp"
wait 500:while scancode=0:end_while terminate Le programme fait apparaître un premier décor Skybox 1, un terrain 3d_plane 2 et un personnage 3d_actor 3. Le programme est prévu pour que dès qu'on appuie sur une touche, on détruit le skybox 1 et on en recréée un autre skybox 1 représentant un autre décor. Le second décor s'affiche bien à l'écran, mais le terrain et le personnage ont disparu! Est-ce bien normal? Je crois que oui, car on dit dans la doc que le skybox doit être le premier objet 3d créé, ce qui veut dire que les autres objets 3d se greffent sur lui. Mais alors pourquoi le terrain et le personnage restent-ils affichés le temps du wait 2000? Si je détruis un skybox, tout ce qui est greffé sur lui doit disparaître également. Le skybox n'agit-il pas un peu comme un scene3d? Si vous avez un explication... Cordialement et bonne programation | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: On peut pas changer de texture! Ven 6 Jan 2012 - 10:16 | |
| Pour répondre dans l'ordre à tes questions de tes 2 posts: - actuellement, en interne, les textures d'un 3D_SKYBOX sont stockées dans une pile avec des noms comme 'Front", "Back", etc, selon la position de la texture sur le skybox. Lorsque tu changes les textures, les nouvelles textures sont empilées sur les anciennes avec les mêmes noms, et les anciennes ne sont pas détruites. Lorsque le 3D_SKYBOX est utilisé par la carte 3D du PC, les textures sont lues dans cette pile, mais ce sont toujours les premières qui sont utilisées. Par exemple, pour prendre la texture de face, le GPU de la carte 3D prend la première texture répondant au nom de "Front" et ignore la nouvelle qui porte le même nom. Comme on ne peut pas changer les textures d'un 3D_SKYBOX, on peut dire que c'est un bug. Je vais gérer cette pile contenant les textures pour que les plus récentes prennent la place des anciennes. - pour les autres questions, je ne vois aucun problème. La texture "sable" remplace correctement la texture "front1" sur la sphère, comme dans l'exemple: - Code:
-
scene3d 1:full_space 1 3d_sphere 1,3:3d_load_texture 1,"front1.bmp" wait 5000 3d_load_texture 1,"sable.bmp" end capture d'image avec "front1": capture d'image avec "sable": - lorsque tu détruis un 3D_SKYBOX, les autres objets continuent à apparaitre normalement car un 3D_SKYBOX est un objet 3D comme les autres et peut être détruit sans problème. Par contre, si tu en recrées un autre, il masque tous les autres objets 3D qui ne sont alors plus visibles. C'est pourquoi le 3D_SKYBOX doit être le premier objet 3D créé. Lorsque j'aurai corrigé le bug des textures, il ne sera plus nécessaire de détruire un 3D_SKYBOX pour en recréer un autre: il suffira de changer les textures du 3D_SKYBOX existant. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: On peut pas changer de texture! Ven 6 Jan 2012 - 11:03 | |
| Bonjour Jack Merci de prendre le temps de répondre à mes post et de te préoccuper de ces bugs. Ainsi je comprends mieux le problème et j'attendrais que cela soit corrigé. Donc je vais laisser de coté mon programme pour le reprendre plus tard. https://i.servimg.com/u/f44/17/04/09/94/sphere10.jpgÇa c'est l'image que j'obtiens avec la texture "sable" Donc, désolé, mais ça ne fonctionne pas correctement! Peut-être suis-je le seul à avoir ce problème? Et puis, j'ai remarqué aussi que la texture sur le 3d_dodecahedron ne s'applique pas correctement. voir ce petit programme d'essai avec l'image texture ci jointe: - Code:
-
dim i,j,k,ch$:ch$="c:\p-chateau\" full_space 0:scene3d 1:full_space 1
3d_dodecahedron 1:3d_scale 1,2,2,2:3d_load_texture 1,ch$+"texr.jpg" while scancode=0:end_while:3d_hide 1
3d_sphere 2,2:3d_load_texture 2,ch$+"texr.jpg" while scancode=0:3d_x_rotate 2,j:j=j+1:end_while:3d_hide 2
3d_cube 3,2:3d_load_texture 3,ch$+"texr.jpg" while scancode=0:3d_rotate 3,i,j,k:i=i+1:j=j+5:k=(j-i)/3:end_while:3d_hide 3
3d_torus 5,2,1:3d_load_texture 5,ch$+"texr.jpg" while scancode=0:3d_rotate 5,i,j,k:i=i+1:j=j+5:k=(j-i)/3:end_while:3d_hide 5
3d_dodecahedron 4:3d_scale 4,5,5,5:3d_load_texture 4,ch$+"texr.jpg" while scancode=0:3d_rotate 4,i,j,k:i=i+1:j=j+5:k=(j-i)/3:end_while terminate https://i.servimg.com/u/f44/17/04/09/94/texr11.jpgMerci et bonne journée à tous! | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: On peut pas changer de texture! Ven 6 Jan 2012 - 17:21 | |
| Et si, sur le 3D_SPHERE, au lieu de passer de la texture front1.bmp à la texture sable.bmp, tu passais de la texture front1.bmp à la texture right1.bmp ? - Code:
-
scene3d 1:full_space 1 3d_sphere 1,3:3d_load_texture 1,"front1.bmp" wait 2000 3d_load_texture 1,"right1.bmp" end Je m'explique. Sur le 3D_SKYBOX, tu appliques des textures carrées, mais de taille différentes. J'ai vu qu'il y a du 256x256, du 512x512 et du 1024x1024. Quand tu passes de la texture front1.bmp à la texture sable.bmp sur le 3D_SPHERE, tu passes d'une taille de 512x512 à une taille de 1024x1024, et ta carte graphique ne le supporte peut-être pas. Essaye de passer de la texture front1.bmp à la texture right1.bmp sur le 3D_SPHERE, c'est à dire de rester avec une texture de taille 512x512. En ce qui concerne le dodécahèdre, je ne constate aucun problème de texture et je viens de repasser tous les tests de texture sur tous les types d'objets 3D sans aucun problème. Il faut noter que la texture que tu utilises n'est pas carrée car elle fait une taille de 140x180 et encore une fois, ta carte graphique ne le supporte peut-être pas. Il y a quelques années, la plupart des cartes graphiques ne supportaient que des textures carrées dont la taille était une puissance de 2 (64x64, 128x128, 256x256, ...)
Dernière édition par Jack le Sam 7 Jan 2012 - 6:55, édité 1 fois (Raison : puissance de 2 et non multiple de 2) | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: On peut pas changer de texture! Ven 6 Jan 2012 - 21:42 | |
| Désolé de le dire mais Jack tu est vraiment un pro, qu'est-ce que t'en connais des trucs !!!
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: On peut pas changer de texture! Ven 6 Jan 2012 - 22:17 | |
| Bonsoir Jack, Effectivement, les textures de même dimensions, ça marche! Mais pour le dodecahedron, je maintiens! Par contre, on voit que la texture s'applique dessus, mais pas de la même manière que sur les autres objets 3d. Ou bien alors c'est ma carte graphique qui est vraiment mauvaise, à moins que ce ne soit le processeur ou la carte mère. J'ai un compaq (ça dépend de HP) portable écran 17.3", et je joint une partie du détail de ma config. Tu me diras si c'est bon ou bien si il faut que je change de matos. Les données sont extraites avec un petit logiciel gratuit: Speecy Voilà bonne soirée. - Code:
-
Système d'exploitation MS Windows 7 Home Premium 64-bit SP1 Processeur Intel Celeron T3100 @ 1.90GHz 43 °C Technologie Penryn 45nm RAM 4.0 Go Canal-Double DDR2 @ 399 MHz (6-6-6-18) Carte mère Hewlett-Packard 306B (CPU) Graphiques Moniteur Plug-and-Play générique @ 1600x900 Mobile Intel(R) 4 Series Express Chipset Family Mobile Intel(R) 4 Series Express Chipset Family Disques durs 313 Go SAMSUNG SAMSUNG HM321HI ATA Device (SATA) 39 °C Disques optiques hp DVDRAM GT30L ATA Device Audio IDT High Definition Audio CODEC
Processeur Intel Celeron T3100 Coeurs 2 Threads 2 Nom Intel Celeron T3100 Nom de code Penryn Package Socket P (478) Technologie 45nm Spécification Celeron(R) Dual-Core CPU T3100 @ 1.90GHz Famille 6 Famille étendue 6 Modèle 7 Modèle étendu 17 Stepping A Révision R0 Instructions MMX, SSE, SSE2, SSE3, SSSE3, EM64T Vitesse du bus 199.5 MHz Vitesse mesurée du bus 798.0 MHz Vitesse du coeur initiale 1900 MHz Vitesse du bus initiale 200 MHz Température moyenne 44 °C Caches Taille du cache de données L1 2 x 32 Ko Taille du cache d'instructions L1 2 x 32 Ko Taille du cache unifié L2 1024 Ko Cœur 0 Vitesse du coeur 1895.3 MHz Multiplicateur x 9.5 Vitesse du bus 199.5 MHz Vitesse mesurée du bus 798.0 MHz Température 44 °C Thread 1 ID APIC 0 Cœur 1 Vitesse du coeur 1895.3 MHz Multiplicateur x 9.5 Vitesse du bus 199.5 MHz Vitesse mesurée du bus 798.0 MHz Température 44 °C Thread 1 ID APIC 1
Carte mère Fabricant Hewlett-Packard Modèle 306B Version Rev 1 Vendeur de chipset Intel Modèle de chipset GM45/GM47 Révision de chipset 07 Vendeur de southbridge Intel Modèle de southbridge 82801IM (ICH9-M) Révision de southbridge 03 BIOS Marque Hewlett-Packard Version F.20 Date 10/13/2009
Graphiques Ecran Nom Moniteur Plug-and-Play générique sur Mobile Intel 4 Series Express Chipset Family Résolution actuelle 1600x900 pixels Résolution de travail 1600x860 pixels Etat activé, principal Largeur de l'écran 1600 Hauteur de l'écran 900 Points par pouce de l'écran 32 bits par pixel Fréquence de l'écran 60 Hz Périphérique \\.\DISPLAY1\Monitor0 Mobile Intel(R) 4 Series Express Chipset Family Mémoire 1807 Mo Type de mémoire 2 Version du pilote 8.15.10.1883 Mobile Intel(R) 4 Series Express Chipset Family Type de mémoire 2 Version du pilote 8.15.10.1883
| |
| | | Contenu sponsorisé
| Sujet: Re: On peut pas changer de texture! | |
| |
| | | | On peut pas changer de texture! | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |