Git Version | Version Git
nochka85, Wednesday 10 December 2008 à 19:31
|
|
Subscription date : 29 November 2007
Messages : 7408
|
C'est une bien belle galère en tout cas c'est totalement incompréhensible!
Si çà se trouve, c'est vraiment tout bête ... Je suis sûr qu'Augur trouverait çà en moins de 2 ! |
nochka85, Wednesday 10 December 2008 à 19:45
|
|
Subscription date : 29 November 2007
Messages : 7408
|
Tiens Paradoxxx -> Juste à tout hasard , voici un répertoire avec le "presque" copier/coller de ce qu'il y a dans le dock :
http://www.speedyshare.com/344400522.html
J'ai déjà compiler le programme ( cube ) <- Essaies de l'exécuter et dis-moi ce qui se passe ...
Si tu souhaites essayer de faire des modifs, je t'ai mis les sources et les images ... tu trouveras tout le code dans cube.c (sdlglutils.c ne sert qu'à charger les images via la SDL) ...
Pour la compilation, tu te mets dans le répertoire et tu fais çà :
gcc -Wall -c *.c `sdl-config --cflags --libs` `pkg-config --libs --cflags gtkglext-1.0` -lSDL_image -lGL -lGLU && gcc -Wall *.o `sdl-config --cflags --libs` `pkg-config --libs --cflags gtkglext-1.0` -lSDL_image -lGL -lGLU -o cube && rm *.o
EDIT : Ne regardes pas trop le code -> C'est juste un truc bricolé rapide |
Subscription date : 14 January 2008
Messages : 1122
|
hop installé 2 3 paquets pour sdl, recompilé vu que je suis en 64bits, executé et paf :
ceci dit ca va etre pratique pour essayer de régler ca ! merci beaucoup
cchumi : je tente et je te dis
edit :
voilà :
sinon mon glxinfo :
glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_create_context, GLX_ARB_multisample,
GLX_NV_float_buffer, GLX_ARB_fbconfig_float
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_ARB_create_context, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float, GLX_EXT_fbconfig_packed_float,
GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB,
GLX_NV_present_video, GLX_NV_multisample_coverage
GLX version: 1.3
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_create_context, GLX_ARB_multisample,
GLX_NV_float_buffer, GLX_ARB_fbconfig_float, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce Go 7600/PCI/SSE2
OpenGL version string: 2.1.2 NVIDIA 180.08
OpenGL shading language version string: 1.20 NVIDIA via Cg compiler
OpenGL extensions:
GL_ARB_color_buffer_float, GL_ARB_depth_texture, GL_ARB_draw_buffers,
GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
GL_ARB_fragment_shader, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
GL_ARB_framebuffer_object, GL_ARB_imaging, GL_ARB_multisample,
GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,
GL_ARB_shader_objects, GL_ARB_shading_language_100,
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_dot3, GL_ARB_texture_float,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
GL_ARB_vertex_array_object, GL_ARB_vertex_buffer_object,
GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
GL_ATI_draw_buffers, GL_ATI_texture_float, GL_ATI_texture_mirror_once,
GL_S3_s3tc, GL_EXT_texture_env_add, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_equation_separate,
GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_compiled_vertex_array, GL_EXT_Cg_shader, GL_EXT_depth_bounds_test,
GL_EXT_direct_state_access, GL_EXT_draw_range_elements, GL_EXT_fog_coord,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_framebuffer_object, GL_EXT_gpu_program_parameters,
GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_texture3D,
GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp,
GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_timer_query,
GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square,
GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fence,
GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program,
GL_NV_fragment_program_option, GL_NV_fragment_program2,
GL_NV_framebuffer_multisample_coverage, GL_NV_half_float,
GL_NV_light_max_exponent, GL_NV_multisample_filter_hint,
GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_pixel_data_range,
GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners,
GL_NV_register_combiners2, GL_NV_texgen_reflection,
GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
GL_NV_texture_expand_normal, GL_NV_texture_rectangle,
GL_NV_texture_shader, GL_NV_texture_shader2, GL_NV_texture_shader3,
GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_NV_vertex_program2,
GL_NV_vertex_program2_option, GL_NV_vertex_program3,
GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod,
GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum |
nochka85, Wednesday 10 December 2008 à 21:23
|
|
Subscription date : 29 November 2007
Messages : 7408
|
En comparant ton glxinfo avec le mien , tout ce que je vois c'est çà :
- Ce que TU as en plus :
GLX_ARB_create_context
GL_ARB_half_float_vertex,
GL_ARB_framebuffer_object
GL_ARB_vertex_array_object,
GL_EXT_direct_state_access,
GL_EXT_vertex_array_bgra
- Ce que J'ai en plus :
GL_EXT_Cg_shader
GL_EXT_depth_bounds_test
- Et pour finir, toi tu as : "OpenGL renderer string: GeForce Go 7600/PCI/SSE2" et moi j'ai :"OpenGL renderer string: GeForce 7600 GT/AGP/SSE/3DNOW!"
... par contre, après, pour interpréter je laisse quelqu'un de plus compétant
Sinon, pour le fait que tu ais le même problème avec mon programme, cela exclue déjà la méthode de chargement de l'image présente dans le dock
ceci dit ca va etre pratique pour essayer de régler ca ! merci beaucoup
C'est clair, c'est bien pratique comme petit programme -> Couplé avec geany en mettant dans "définir les includes et les options" la ligne que je t'ai mise (avec %e à la place de cube (à la fin) ) -> Super rapide pour tester des trucs |
cchumi, Wednesday 10 December 2008 à 22:45
|
|
nochka85, Wednesday 10 December 2008 à 23:45
|
|
Subscription date : 29 November 2007
Messages : 7408
|
Je ne le vois pas .... pendant le "make" tu veux dire ? |
Subscription date : 14 January 2008
Messages : 1122
|
je l'ai aussi mais que pour capsule...
capsule marche nickel alors après va en conclure quelque chose... ! |
AuGuR, Thursday 11 December 2008 à 02:47
|
|
Subscription date : 25 June 2008
Messages : 49
|
Eh bien ca prend forme tout ça et je vois que beaucoup de gens se penche sur l'openGL j'ai même vu un fil sur l'apprentissage avec des choses tres prometeuses, bon je vais essayer de voir vite fait le problème (si je trouve ...), je suis de retour dans notre beau (mais trés froid) pays (en fait ça fait presque 3 semaines mais il faut que je reprenne mes marques ... j'ai juste eu le temps de faire un bref passage ici) puis re-disparition pendant 6 mois à partir du 15 janvier dans l'hemisphere sud (fabounet je vais te filer mon adresse mail du boulot au cas ou ...) |
AuGuR, Thursday 11 December 2008 à 03:31
|
|
Subscription date : 25 June 2008
Messages : 49
|
Bon en gros de ce que j'ai vu (mais je suis un peu perdu dans tout les repertoires ...) primo je comprends pas trop le
if (bInvisibleBackground)
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // rend la capsule transparente.
else
glBlendFunc (GL_ONE, GL_ZERO); // la capsule "ecrase" le fond.
avant tes display list vu que après tu fais un : glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); mais bon c'est pas ça qui bloque la chose
ensuite pourquoi activer le test de profondeur si tu veux de la transparence ? ou alors dans ce cas tu désactives l'affichage dans le tampon avec un glDepthMask(GL_FALSE); puis tu le réactives avec glDepthMask(GL_TRUE);
il est vrai que les ARB pour les textures & cie ne sont plus utiles vu qu'ils sont officiels depuis la version 1.4 je crois d'opengl donc on peut les virer
inutile d'indiquer les coordonnées de textures pour la première passe avec le glMultiTexCoord2fARB( GL_TEXTURE0_ARB,0., 0.); vu qu'elles sont générées par le CG via le glEnable(GL_S) et (GL_T)
j'aime pas le GL_ADD dans
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); // Le mode de combinaison des textures
glTexEnvi (GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_ADD);
tu risques de saturer la couleur
je préfère un GL_MODULATE
au pire si il faut booster la combinaison tu rajoutes
glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE, facteur); après
Bon voilà déjà en gros mais je ne pense pas que ça résolve le problème d'icones qui n'apparaissent pas je vais fouiller ça demain un peu plus
AuGuR |
ppmt, Thursday 11 December 2008 à 06:23
|
|
Subscription date : 29 November 2007
Messages : 3520
|
wow!!!! je sais pas ce qu'il fume dans l'hemisphere sud mais ca l'air fort
Deja je ne comprenais rien avant mais alors ca y est c'est fini! |
cchumi, Thursday 11 December 2008 à 08:27
|
|
Subscription date : 11 January 2008
Messages : 390
|
Hey bonjour
Alors Nochka j'ai essayé ton programme et je n'ai aucun problème l'affichage est parfait ... Donc voilà.
Sinon pour le warning c'est pendant le make oui .
Paradoxx apparement c'est normal de l'avoir une seule fois , si tu inverse les portions de code pour mettre la fonction cube en premier il t'indique le warning sur la fonction cube.Il doit relater une seule fois ce warning.
J'ai déjà cherché de ce coté apparement il faut aller binder ta carte pour savoir si elle le fait et quels sont les adresses avec des glXGetProcAdress mais un bug empèche d'utiliser cette fonction qui elle meme renvoi un warning ... c'est connu parait il.
Ravi de voir qu'Augur est revenu et va pouvoir nous dénicher ça . |
cchumi, Thursday 11 December 2008 à 12:57
|
|
Subscription date : 11 January 2008
Messages : 390
|
Bon et bien etrangement voici un code qui fonctionnerait presque ... le problème viendrait des multitex ??? :
glEnable (GL_BLEND);
glEnable(GL_TEXTURE);
glActiveTextureARB(GL_TEXTURE0_ARB); // Go pour le multitexturing 1ere passe
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, pIcon->iIconTexture); // Select Texture 1 (0)
glBegin(GL_QUADS); // Begin Drawing A Quad
glNormal3f(0.0, 0.0, 1.0); // Normal Pointing Up
glTexCoord2f(0., 0.); // Bottom Left Of Texture
glVertex3f(-.5, .5, 0.); // Bottom Left Corner Of Floor
glTexCoord2f(1., 0.); // Top Left Of Texture
glVertex3f(.5, .5, 0.); // Top Left Corner Of Floor
glTexCoord2f(1., 1.); // Top Right Of Texture
glVertex3f( .5, -.5, 0.); // Top Right Corner Of Floor
glTexCoord2f(0., 1.); // Bottom Right Of Texture
glVertex3f( -.5, -.5, 0.); // Bottom Right Corner Of Floor
glEnd();
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_ALPHA);
///////////
glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, myData.iChromeTexture); // Select Texture 1 (0)
glBegin(GL_QUADS); // Begin Drawing A Quad
glNormal3f(0.0, 0.0, 1.0); // Normal Pointing Up
glTexCoord2f(0., 0.); // Bottom Left Of Texture
glVertex3f(-.5, .5, 0.); // Bottom Left Corner Of Floor
glTexCoord2f(1., 0.); // Top Left Of Texture
glVertex3f(.5, .5, 0.); // Top Left Corner Of Floor
glTexCoord2f(1., 1.); // Top Right Of Texture
glVertex3f( .5, -.5, 0.); // Top Right Corner Of Floor
glTexCoord2f(0., 1.); // Bottom Right Of Texture
glVertex3f( -.5, -.5, 0.); // Bottom Right Corner Of Floor
glEnd();
///////////////////
glDisable(GL_ALPHA);
glActiveTextureARB(GL_TEXTURE1_ARB);
glDisable(GL_TEXTURE_2D);
glActiveTextureARB(GL_TEXTURE0_ARB);
glDisable(GL_TEXTURE_2D);
glDisable (GL_BLEND);
J'ai remplacé le code de SQUARE par celui ci dessus et ça fonctionne .Maintenant reste à trouver pourquoi |
fabounet, Thursday 11 December 2008 à 16:38
|
|
Subscription date : 30 November 2007
Messages : 17118
|
Ah te revoila Augur, il me semblait bien que tu étais rentré
dommage on s'est loupé à l'Ubuntu party, mais j'espère que t'es là en janvier qu'on se fasse un truc !
ça a pas mal avancé depuis et tu peux dénicher qques vidéos sur youtube pour voir où on en est.
pour le GL_ADD oui ça sature la couleur, je savais pas quoi faire pour faire apparaître suffisamment les reflets blancs, j'essaierai ta méthode !
au passage, avec le sphere mapping, j'ai l'impression que les reflets dépendent de la position de l'icône dans le dock (c'est comme si j'avais une trame de reflets, fixe, avec les icones qui se placent dessus). peut-être qu'un cube mapping serait plus adapté, mais j'ai lu que c'est plus lourd et pas forcément disponible sur toutes les cartes.
Sinon j'ai un problème auguresque (comprendre : indemerdable pour un mec normal)
lorsque je dessine les reflets, je plaque la texture en l'inversant, et avec du alpha :
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glColor4f (1., 1., 1., alpha);
supposons que j'ai un fond blanc opaque (destination = 1), alors je vais avoir au final alpha * source, ce qui fait que ça me bouffe le fond (on voit à travers le plan horizontal là où il y'a du reflet)
donc probablement le glBlendFunc n'est pas une bonne idée, mais sans ça comment dessiner un truc transparent ?
j'ai pensé à une combinaison avec les glTexEnvi, mais pour trouver la bonne ...
Edit : le test de profondeur je pensais qu'il était nécessaire pour pas qu'il dessine la partie arrière de la capsule. s'il sert à rien je vais le virer
Edit2 : bon finalement il est nécessaire. Sinon on voit la partie arrière en même temps. Par contre pour le chrome, si je fais un GL_MODULATE, mon icône est presque toute noire. La texture chrome que j'utilise est presque toute noire avec quelques traits gris. elle est ptet pas adaptée ? |
nochka85, Thursday 11 December 2008 à 18:38
|
|
Subscription date : 29 November 2007
Messages : 7408
|
au passage, avec le sphere mapping, j'ai l'impression que les reflets dépendent de la position de l'icône dans le dock (c'est comme si j'avais une trame de reflets, fixe, avec les icones qui se placent dessus).
Yep, j'ai remarqué çà aussi -> J'ai plus de reflets au centre du dock que sur les cotés chez moi (ou l'inverse, je sais plus ) |
Subscription date : 14 January 2008
Messages : 1122
|
j'ai pas d'icones personellement sur tes cd volant cchumi... |
AuGuR, Friday 12 December 2008 à 01:23
|
|
Subscription date : 25 June 2008
Messages : 49
|
Bon alors dans l'ordre en ce qui concerne le multitexturing es tu sur que tu as l'extension glActiveTextureARB ? chez moi (Mac) la fonction est présente dans le glex.h à voir
Pour ton problème d'icone inversé je comprends pas trop (trop auguresque peut-être ...) tu n'as pas un screenshot ? parce que le
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
avec un alpha à 0.1f devrait te faire apparaître juste légèrement l'icône
Pour l'histoire de la texture chrome si elle est pratiquement noire ça peut poser un problème en effet ...
pour le sphere mapping ça dépend de la position vu que la texture est calculée d'après la matrice modelview |
fabounet, Friday 12 December 2008 à 02:42
|
|
Subscription date : 30 November 2007
Messages : 17118
|
exact pour le sphere maping, mais du coup l'effet est pas terrible. n'y aurait-il pas un moyen que chaque icone ait les mêmes reflets, par exemple en jouant sur la matrice au moment du placage ?
ou bien une texture chrome plus adaptée ?
le problème avec le glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA), c'est que si j'ai un alpha de .1, on aura alors :
alpha = .1 * source + .9 * destination.
destination vaut 1 puisque le fond est opaque, par contre source vaut 0<s<1 car l'icone peut avoir de la transparence en elle-même.
du coup le alpha obtenu est inférieur à 1 => on voit à travers le fond !
pour info j'arrive au même résultat en appliquant un alpha avec glBlendFunc ou en multitexturant avec une texture contenant le alpha. On voit toujours à travers
En plus de manière générale les reflets sont très pales. En fait il faudrait un glBlendFunc (GL_ONE, GL_SRC_ALPHA) mais alors tu satures les couleurs, donc il faudrait ça seulement sur le alpha, et le classique glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) sur les composantes RGB. Une idée de comment faire ça ?
c'est étrange que le rendu de la transparence avec cairo soit impeccable, et que celui d'OpenGL soit différent |
cchumi, Friday 12 December 2008 à 08:40
|
|
Subscription date : 11 January 2008
Messages : 390
|
Paradoxx pourquoi parles tu de CD volant ??? |
nochka85, Friday 12 December 2008 à 12:39
|
|
fabounet, Friday 12 December 2008 à 13:07
|
|
Subscription date : 30 November 2007
Messages : 17118
|
dans ton bouquin ? |
Git Version | Version Git
|