Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Git Version | Version Git [141?] Rendu cube et normal
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Git Version | Version Git

Subjects Author Language Messages Last message
[Locked] [141?] Rendu cube et normal
Page : 1 2 3 4
parAdOxxx_ZeRo Français 73 nochka85 [Read]
13 December 2008 à 10:58

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

parAdOxxx_ZeRo, Wednesday 10 December 2008 à 20:21


Subscription date : 14 January 2008
Messages : 1122
hop installé 2 3 paquets pour sdl, recompilé vu que je suis en 64bits, executé et paf :

http://zero.dontexist.net/cubefail.png

ceci dit ca va etre pratique pour essayer de régler ca ! merci beaucoup

cchumi : je tente et je te dis

edit :
voilà :
http://zero.dontexist.net/cubelil.png

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


Subscription date : 11 January 2008
Messages : 390
Merci Paradoxx on a donc le meme rendu ... c'est réconfortant enfin en quelque sorte

J'ai une question pour tout ceux qui compile le plugin Animated Icons.

Avez vous ce warning lors de la compil :

implicit declaration of function ‘glActiveTextureARB’


Paradoxx je suis persuadé que oui mais nochka par exemple toi chez qui ça marche ?

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 ?

parAdOxxx_ZeRo, Thursday 11 December 2008 à 00:26


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 )

parAdOxxx_ZeRo, Thursday 11 December 2008 à 22:08


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


Subscription date : 29 November 2007
Messages : 7408
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 ?


Il me semble avoir lu ou vu un truc sur çà quelque part ... mais je sais plus où

fabounet, Friday 12 December 2008 à 13:07


Subscription date : 30 November 2007
Messages : 17118
dans ton bouquin ?

Git Version | Version Git

Subjects Author Language Messages Last message
[Locked] [141?] Rendu cube et normal
Page : 1 2 3 4
parAdOxxx_ZeRo Français 73 nochka85 [Read]
13 December 2008 à 10:58


Glx-Dock / Cairo-Dock List of forums Git Version | Version Git [141?] Rendu cube et normal Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.