Salut. J'ai voulu tester la programmation avec opengl, alors j'ai copié une source du feu tutoriel de Kayl, j'ai pris le programme qui génère un cube, mais ça ne marche avec aucun de toute façon.
Pour compiler, j'ai utilisé g++ avec ces arguments : g++ -Wall -lSDL -lGLU -lGL main.cpp -o x
Lors de la compilation et de l'exécution, je n'ai aucune erreur.J"obtiens une fenêtre noire, mais pas de cube...
Sinon, j'ai l'accélération 3D matérielle qui fonctionne, et d'ailleurs, la compilation du glxgears (démo d'opengl) ne me donne aucune erreur, et cette fois ci, le programme fonctionne
Tout a fait, je suis nul en OpenGL, c'est pour cela que je l'utilise depuis de nombreuses années, et que j'ai de quoi le prouver, si tu daignes cliquer sur mes liens, dans ma signature.
C'est aussi pour ça que je suis employé comme ingénieur en informatique, et qu'un fou me donne un bon salaire pour programmer toute la journée : parce que je suis nul en programmation !
EDIT : a ce propos, j'ai trouvé d'ou peut venir ton erreur. Mais on n'est pas fait pour etre copain.
Fvirtman, je te demande pas d'être copain, juste de ne pas juger les gens sur un vieux avatar à 3 sous...
Et je doute pas de tes capacités en programmation.
Citation : Pas de titre
EDIT : a ce propos, j'ai trouvé d'ou peut venir ton erreur. Mais on n'est pas fait pour etre copain.
Nan mais c'est bon hein je pense pas que tu sois le seul qui puisse m'aider sur le siteduzero.
Fvirtman : c'est pas moi qui ai commencé (à dire des fausses vérités).
Si quelqu'un a une idée... :/
(ps, j'imagine que tu l'as remarqué, mais on sait jamais, mon avatar est une parodie d'une affiche de propagande pour l'urss... Ca représente le marteau qui casse le logo de windows, c'est à dire aucun rapport avec le communisme, seulement un appel à utiliser les logiciels libres)
magnanime > ça ne vient pas de la : il sélectionne la matrice MODELVIEW pour le rendu. Cela est fondamental au moins pour la premiere fois, car sinon, la selection restait sur GL_PROJECTION.
j'ai la même emmerde et personne a jamais voulu me donner une silice qui fonctionne. Le truc avec glxgears, moi aussi, il fonctionne chez moi. Donc, j'ai été obligé de choisir entre glut ... Et comme il me semble avoir a faire a un linuxien ici ... Glx.
Bon, le problème, c'est que glut avec son système de callbacks ne permet pas une programmation sans variables globale et que glx n'est pas portable ... Euh ... Essaye sfml, mais bizarement, chez moi, sfml foire dès que je fait apparaître une fenêtre et la aussi, jamais eu de soluces. Y parrait que c'est encore un truc avec opengl.
Bref, moi j'ai fini avec glx, mais le problème de portabilité est énorme. Il faut a chaque fois ce reservir de la librairie bas niveau de l'os. C'est a dire api win 32 et wgl pour windows, cocoa et agl pour mac ...
C'est chiant mais sa fonctionne.
@ fivterman > aller donne lui la soluce ... Moi aussi je suis intéressé ça fait 6 mois que je suis avec glx... Et je prefererai vachement faire dans le portable ! C'est souvent mieux quand on est sous linux !
Merci Moi je me fous de pouvoir rendre le code portable, jveux juste voir vite fait
Mais le problème c'est que g++ me dit que glx n'est pas présent (j'ai essayé -lGLX et -lglx), donc j'ai cherché une lib avec emerge (je suis sous gentoo) avec le terme "glx" , mais rien de rien mis à part games-fps/glxquake-bin x11-misc/rss-glx ...
D'habitude, j'ai droit à un dev-libs/gmp ou media-libs/libsdl ...
T'as une idée ?
ben euh ... sudo apt-get install x11-libs-dev ? Ah mais c'est gentoo ! Bon cherche un peut dans ton emerge libs-dev-x11, ou un truc du genre. Perso, je connais surtout debian. Gentoo, je connais pas bien,
Y'a pas un forum? Si il me semble... En attendant, bonne recompilation !
Bon de toute façon, glx est déjà installé, vu que je compile glxgears sans problèmes.
J'ai essayé de bidouiller le main.cpp en virant les deux fonctions faisant appel à glut (gluPerspective(70,(double)640/480,1,1000); et gluLookAt(3,4,2,0,0,0,0,0,1);) à tout hasard, et avec cette entête :
En linkant -lSDL et -lGL. J'ai aucune erreur, mais toujours rien ne s'affiche. (Pour info j'ai pas besoin de linker glx ou quoi que ce soit avec glxgears, juste -lGL)
essaye avec la sfml, parceque chez moi, ça marche que ça soit sous windows ou sous linux, et elle facilite grandement la tache! par exemple pour charger ue texture, inutile de se perdre la tete:
sf::Image texture;
texture.LoadFromFile("il.jpg");
texture.Bind();
et hop
J'ai pris un code au pif sur le tuto opengl, j'ai pas envie d'apprendre la sfml pour ça... Et la sdl marche très bien (c'est opengl qui ne fonctionne pas. Enfin si, mais pas avec mon programme)
Bon évidemment sfml n'est pas dans portage, donc je dois me taper le téléchargement de l'archive à la main, avec ses lib et include. Evidemment, je n'y connais rien... J'ai créé un dossier /usr/lib SFML et j'ai copié le contenu de l'archive dedans, mais je sais pas si c"est ce qu'il faut faire.
Pour compiler le code du dessus:
g++ main.cpp -o exe -lsfml-windows -lsfml-system
[remplace main.cpp par le nom de ton fichier]
Enfin, ma remarque s'addressait plutôt à Pierre_24 avec qui SFML ne marche pas.
Fonctionne dans le sens que ça affiche autre chose que du noir?
Faire :
export LIBGL_DEBUG=verbose
dans une console, ça permet d'afficher les problèmes d'OpenGL.
Ok... Enfin le problème vient d'opengl non ?
Bien j'ai téléchargé le zip sur la caméra freefly (avec une scène...). Donc j'ai tapé make, il n'y pas d'erreurs (et pas d'avertissements).
Ensuie j'ai utilisé le mode verbose avec opengl, comme l'a dit Pole, et voici ce que me retourne l'exécution du programme :
boris ~/programmation/opengl/sdlgl % ./sdlgl_09_freefly
libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: drmOpenMinor returns 5
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
libGL error:
Can't open configuration file /etc/drirc: No such file or directory.
libGL error:
Can't open configuration file /home/boris/.drirc: No such file or directory.
Vertex3f: 1
Normal3f: 1
TexCoord2f: 1
Je ne comprends pas l'erreur ? C'est quoi ce fichier drirc ?
Merci
glxinfo :
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
OpenGL vendor string: Tungsten Graphics, Inc.
OpenGL renderer string: Mesa DRI Radeon 20061018 AGP 1x x86/MMX/SSE2 TCL
OpenGL version string: 1.3 Mesa 6.5.2
OpenGL extensions:
GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_window_pos,
GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_logic_op,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
GL_EXT_compiled_vertex_array, GL_EXT_convolution, GL_EXT_copy_texture,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_histogram,
GL_EXT_packed_pixels, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color,
GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels,
GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once,
GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
GL_MESA_ycbcr_texture, GL_MESA_window_pos, GL_NV_blend_square,
GL_NV_light_max_exponent, GL_NV_texture_rectangle,
GL_NV_texgen_reflection, GL_OES_read_format, GL_SGI_color_matrix,
GL_SGI_color_table, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod
visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x23 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x24 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x26 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow
0x27 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x28 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x29 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow
0x2b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x2c 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x2d 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x2e 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow
0x2f 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x30 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x31 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x32 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow
les erreurs qu'il donne au passage (glxgears les donne aussi), grâce au verbose :
libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
libGL error:
Can't open configuration file /etc/drirc: No such file or directory.
libGL error:
Can't open configuration file /home/boris/.drirc: No such file or directory.
et glxgears :
401 frames in 5.0 seconds = 80.096 FPS
399 frames in 5.0 seconds = 79.642 FPS
399 frames in 5.0 seconds = 79.639 FPS
399 frames in 5.0 seconds = 79.647 FPS
Mais glxgears, je l'ai fait tout à l'heure, et j'avais plus de 2000 FPS... (WTF ?)
Bon j'ai installé le driconf (qui me semble bien inutile en gtk pour ce ptit truc mais bon...). J'ai laissé les options par défaut et j'ai fait un lien symbolique de /etc/drirc sur /home/boris/.drirc
J'ai ceci :
boris ~/programmation/opengl/sdlgl % ./sdlgl_09_freefly
libGL: XF86DRIGetClientDriverName: 5.2.0 radeon (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/tls/radeon_dri.so
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: drmOpenMinor returns 5
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
Vertex3f: 1
Normal3f: 1
TexCoord2f: 1
Y a pas d'erreurs (à priori) mais évidemment, toujours une fenêtre noire...
Tu as quelle carte graphique?
Recherche dans ce qu'il y a affiché par dmesg des erreurs.
Et dans les logs Xorg : grep EE /var/log/Xorg.0.log.* et grep WW /var/log/Xorg.0.log.*
Pour info, ce problème n'a l'air de concerner que les cartes ATI.
boris ~ % grep EE /var/log/Xorg.0.log.*
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(II) Loading extension MIT-SCREEN-SAVER
boris ~ % grep WW /var/log/Xorg.0.log.*
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(WW) The directory "/usr/share/fonts/TTF/" does not exist.
(WW) The directory "/usr/share/fonts/OTF" does not exist.
(WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/util".
(WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/cyrillic".
(WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/default".
(WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/encodings".
(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
(WW) RADEON(0): Failed to detect secondary monitor, MergedFB/Clone mode disabled
(WW) RADEON(0): DRI init changed memory map, adjusting ...
(WW) RADEON(0): MC_FB_LOCATION was: 0xe3ffe000 is: 0xe3ffe000
(WW) RADEON(0): MC_AGP_LOCATION was: 0xffffffc0 is: 0xe87fe800
(WW) AIGLX: 3D driver claims to not support visual 0x23
(WW) AIGLX: 3D driver claims to not support visual 0x24
(WW) AIGLX: 3D driver claims to not support visual 0x25
(WW) AIGLX: 3D driver claims to not support visual 0x26
(WW) AIGLX: 3D driver claims to not support visual 0x27
(WW) AIGLX: 3D driver claims to not support visual 0x28
(WW) AIGLX: 3D driver claims to not support visual 0x29
(WW) AIGLX: 3D driver claims to not support visual 0x2a
(WW) AIGLX: 3D driver claims to not support visual 0x2b
(WW) AIGLX: 3D driver claims to not support visual 0x2c
(WW) AIGLX: 3D driver claims to not support visual 0x2d
(WW) AIGLX: 3D driver claims to not support visual 0x2e
(WW) AIGLX: 3D driver claims to not support visual 0x2f
(WW) AIGLX: 3D driver claims to not support visual 0x30
(WW) AIGLX: 3D driver claims to not support visual 0x31
(WW) AIGLX: 3D driver claims to not support visual 0x32
(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
Mais les jeux utilisant opengl marchent (openarena, neverball, sauerbraten, postal2...). Enfin, pas frets on fire mais bon. Il n'affiche rien, juste un fond rouge, et la musique marche. Je peux quitter avec échap. http://rafb.net/p/TpMgtc55.html
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html