Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Effets OpenGL
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)
Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] Effets OpenGL
Page : 1 2 3
AuGuR Français 53 cchumi [Read]
28 July 2008 à 10:53

Mav, Tuesday 01 July 2008 à 16:51


Subscription date : 29 November 2007
Messages : 3146
@AuGuR : le code est dispo ici : http://svn.berlios.de/svnroot/repos/cairo-dock/branches/cairo-dock-2/src/
Principalement dans cairo-dock-default-view.c

fabounet, Tuesday 01 July 2008 à 16:54


Subscription date : 30 November 2007
Messages : 17118
quel boulet j'yavais même pas pensé ! bien vu

AuGuR, Wednesday 02 July 2008 à 12:17


Subscription date : 25 June 2008
Messages : 49
1- Deja je suis en vacances et pas chez moi donc je ne peux pas tester ton code. En regardant vite fait j'ai deja remarqué que tu ne fais pas tout le temps un glDisable apres tes differents glEnable
2- Pour ton cylindre c'est tout a fait faisable (ce serait mieux une sorte de capsule ou pastille) avec en plus un petit effet de reflexion je l'ecrirai en rentrant si tu veux (le mieux a l'avenir serai de faire un loader de formes 3d)
3-On peut afficher un rendu complet opengl dans une texture et l'afficher ensuite a l'ecran il y a plusieurs techniques pour faire ca (il y a meme une extension prevu pour ca , une recherche dans google avec pbuffer + opengl devrait te donner pas mal de sources)

fabounet, Wednesday 02 July 2008 à 15:50


Subscription date : 30 November 2007
Messages : 17118
oki merci je recherche du côté des pbuffer (c'est une extension reconnue par toutes les cartes ?)
sinon c'est quoi les autres méthodes ? ça permet de tenir la route niveau perfo (ça éviterai de devoir re-écrire la partie dessin des applets, qui resteraient en cairo, et se contenteraient de charger leur image en texture au besoin)
pour la capsule je suis bien d'accord avec toi mais déjà que faire un cylindre c'est pas gagné, alors une capsule

+1 pour le loader de formes 3D, car suivant les animations, je pense qu'on pourrait plaquer la texture de l'icône sur différentes formes. Je sais pas ce que tu en penses ?

AuGuR, Monday 21 July 2008 à 16:38


Subscription date : 25 June 2008
Messages : 49
Bon alors comme promis lors de notre rencontre au milieu des multiples verres de Mav voici le code pour la capsule en Opengl avec le texturing + un petit effet chrome autour (ça fait plus classe ...) par contre je vais te rajouter + tard le calcul des normales pour les effets de lumieres pour qua ça rende un peu mieux et je vais un peu cleaner le code j'ai fait ça un peu a la barbare ...

c'est une vidéo de l'icone qui tourne
http://www.youtube.com/watch?v=9Z9hcnyuSU4

Et il faudrait réellement ajouter un loader de fichier 3D parce que je me vois mal générer des mesh plus complexes ...

#define MY_ICON_LIST 1 // un petit define pour les display list

float        ObjectPlaneS[] = { 0.59f, 0.0f, 0.0f, 0.0f }; // pour un plaquages propre des textures
float        ObjectPlaneT[] = { 0.0f, 0.59f, 0.0f, 0.0f };


et la fonction de création de la capsule
void    CreateCapsule(void)
{
    int        deg, deg2, iter;
    float        amp, rayon;

    rayon        = 1.0f;
    amp        = 90.0 / 5;
    deg2        = 0;

    glNewList(MY_ICON_LIST, GL_COMPILE); // Go pour la compilation de la display list

glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR ); // ok la on selectionne le type de generation des coordonnees de la texture
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
    glTexGenfv(GL_S, GL_OBJECT_PLANE, ObjectPlaneS); // On place la texture correctement en X
    glTexGenfv(GL_T, GL_OBJECT_PLANE, ObjectPlaneT); // Et en Y
glEnable(GL_TEXTURE_GEN_S);                // oui je veux une generation en S
glEnable(GL_TEXTURE_GEN_T);                // Et en T aussi
    
    glMatrixMode(GL_TEXTURE); // On selectionne la matrice des textures
    glLoadIdentity(); // On la reset
    glTranslatef(0.5f, 0.5f, 0.0f); // Et on decale la texture pour un affiche propre
    glMatrixMode(GL_MODELVIEW); // On revient sur la matrice d'affichage

// bon la je commente pas on fait juste une demi sphere applatie
    for (iter = 0;iter < 5;iter ++)
    {
        for (deg = 0;deg < 360;deg += 10)
        {
            glBegin(GL_QUADS);
                glVertex3f(rayon * sin(deg*RADIAN),
                 rayon * cos(deg*RADIAN),
         0.2f * sin(deg2*RADIAN) + 0.1f);
                glVertex3f((rayon-0.2f) * sin(deg*RADIAN),
     (rayon-0.2f) * cos(deg*RADIAN),
         0.2f * sin((deg2+amp)*RADIAN) +0.1f);
                glVertex3f((rayon-0.2f) * sin((deg+10)*RADIAN),    
(rayon-0.2f) * cos((deg+10)*RADIAN),
0.2f * sin((deg2+amp)*RADIAN) + 0.1f);
                glVertex3f(rayon * sin((deg+10)*RADIAN),
         rayon * cos((deg+10)*RADIAN),
0.2f * sin(deg2*RADIAN) + 0.1f);
            
                glVertex3f(rayon * sin(deg*RADIAN),                
rayon * cos(deg*RADIAN),            
0.2f * sin((deg2+180.0f)*RADIAN) - 0.1f);
                glVertex3f((rayon-0.2f) * sin(deg*RADIAN),        
(rayon-0.2f) * cos(deg*RADIAN),        
0.2f * sin((deg2+amp+180.0f)*RADIAN) -0.1f);
                glVertex3f((rayon-0.2f) * sin((deg+10)*RADIAN),    
(rayon-0.2f) * cos((deg+10)*RADIAN),
0.2f * sin((deg2+amp+180.0f)*RADIAN) - 0.1f);
                glVertex3f(rayon * sin((deg+10)*RADIAN),        
rayon * cos((deg+10)*RADIAN),        
0.2f * sin((deg2+180.0f)*RADIAN) - 0.1f);
            glEnd();
        
        }

        rayon    -= 0.2f;
        deg2    += amp;
    }

// Ici c'est pour faire le cylindre qui relie les demi spheres
glBindTexture(GL_TEXTURE_2D, ID de la texture chrome);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); // Ici c'est pour le type de combinaison de texturing en cas de multi
    glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_REPLACE); // pas de multi je remplace donc l'ancienne texture par celle ci

glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); // ok la on selectionne le type de generation des coordonnees de la texture
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); // Ce sera du sphere mapping pour un petit effet chrome
glEnable(GL_TEXTURE_GEN_S); // oui je veux une generation en S
glEnable(GL_TEXTURE_GEN_T); // Et en T aussi
    
rayon = 1.0f;
    
for (iter = 0;iter < 5;iter ++)
    {
        for (deg = 0;deg < 360;deg += 10)
        {
            glBegin(GL_QUADS);                
                glVertex3f(rayon * sin(deg*RADIAN), rayon * cos(deg*RADIAN), 0.1f);
                glVertex3f(rayon * sin((deg+10)*RADIAN), rayon * cos((deg+10)*RADIAN), 0.1f);
                glVertex3f(rayon * sin((deg+10)*RADIAN), rayon * cos((deg+10)*RADIAN), -0.1f);
                glVertex3f(rayon * sin(deg*RADIAN), rayon * cos(deg*RADIAN), -0.1f);
            glEnd();
        }

        rayon -= 0.2f;
        deg2 += amp;
    }
    glEndList(); // Fini la display list
}


Ok bon maintenant pour faire marcher ce petit prog tu fais un petit CreateCapsule(); en initialisation du prog
puis :

glEnable( GL_TEXTURE_2D ); // On active les textures
glBindTexture(GL_TEXTURE_2D, ID texture de l'icone); // On selectionne la texture desirée

glCallList(MY_ICON_LIST); // Et hop on affiche la capsule


Voilà bon je vais te rajouter le calcul des normales pour avoir une meilleur impression de relief je le posterai à la suite

prochain effet du cell-shadding pour un syle cartoon

@++

Mav, Monday 21 July 2008 à 16:41


Subscription date : 29 November 2007
Messages : 3146
Ca déboise

Bon alors comme promis lors de notre rencontre au milieu des multiples verres de Mav

Je refuse ! 3 verres en presque 4h, ca fait une petite moyenne !

fabounet, Monday 21 July 2008 à 17:16


Subscription date : 30 November 2007
Messages : 17118
toujours aussi impressionnant
je tente d'intégrer ton code au plus vite !

qu'est-ce que tu entends par "chargeur de mesh" ? si c'est faire des vraies icônes en 3D, je veux bien, mais qui les fera ? en effet tous les thèmes d'icônes actuels sont en 2D, et pour faire du dessin 3D même simple on tape dans du Blender direct, et là c'est chaud.
par contre on peux imaginer plusieurs formes de "pastille" peut-être.

nochka85, Monday 21 July 2008 à 18:33


Subscription date : 29 November 2007
Messages : 7408
Et pour les problèmes d'affichage avec une ATI ou une Intel ?? -> J'insiste car c'est dommage de "trop" avancé si cela ne tourne QUE sur des Nvidia

parAdOxxx_ZeRo, Wednesday 23 July 2008 à 08:48


Subscription date : 14 January 2008
Messages : 1122
ah ouais ca pourrais etre fun de refaire toutes les icones en 3D, un peu long, mais Fun ! Avec mes connaissances en blender je pourrais vous en faire quelques unes...

fabounet, Wednesday 23 July 2008 à 12:21


Subscription date : 30 November 2007
Messages : 17118
Nochka est-ce que tu as pu faire marcher le petit programme de test simple.c ?
tu as toujours des warning dans la console ? personne n'a de solution à ce problème sur le net ?

nochka85, Wednesday 23 July 2008 à 12:43


Subscription date : 29 November 2007
Messages : 7408
Nochka est-ce que tu as pu faire marcher le petit programme de test simple.c ?

J'avais posté çà :
http://www.glx-dock.org/bg_topic.php?t=1323&pos=60 (post du 12 juillet à 11h09)

et c'est toujours d'actualité -> Simple.c OK avec metacity et NOK avec compiz .... A la différence du dock opengl qui est NOK quelque soit le WM

tu as toujours des warning dans la console ?


Oui -> Je me suis empressé de retester hier après l'arrivée des nouveau catalyst 8.7 .... mais c'est idem (pour le dock ET pour simple.c)

personne n'a de solution à ce problème sur le net ?


Pas trouvé .... j'étais juste tomber sur un truc sur le site de macslow qui parlait d'un truc qu'il avait développé en opengl ici : http://macslow.thepimp.net/?p=153

et voilà le bout de discussion qui a attiré mon attention :


  1. Varun Says:
February 13th, 2008 at 8:16 am

hi
while trying to run it i get error mesage
Unable to find GLX_EXT_texture_from_pixmap!
thanks

  1. MacSlow Says:

February 13th, 2008 at 9:07 am

@ Varun: If you’re running this on anything but nvidia-hardware, using the proprietary driver, you’re in for this kind of trouble. Although I followed the spec of GLX_EXT_texture_from_pixmap as good as examples (the spec at OpenGL.org and compiz’ sources) and documentation allow, there are unresolved issues like the one you’re experiencing. I cannot get the GL-based examples to work on my i915- and i965-based computers too. My earlier efforts asking for help on the Xorg-mailing-list were unsuccessful. At the moment my job is keeping me busy in other areas, keeping me away from working more on this.


C'est différent du message d'erreur que j'obtiens avec le dock ("gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed ") ...et donc, je ne sais pas si cela peux avoir un rapport, mais les nvidia font tourner des truc que les autres ne font pas

.... Mais ce que je ne comprend pas, c'est qu'un Unreal Tournament 2004 tourne du feu de dieu sur mon ATI .... et c'est pourtant de l'opengl !!! .... Bref, y'aurait il un "standard" à respecter (ou des fonctions à éviter) pour que cela marche sur toutes les cartes ???

Et d'ailleurs, compiz est aussi en opengl ... non ? -> Et il marche très bien chez moi

nochka85, Wednesday 23 July 2008 à 12:50


Subscription date : 29 November 2007
Messages : 7408
@Augur : Tu n'aurais pas une idée sur ce problème ?

fabounet, Wednesday 23 July 2008 à 16:42


Subscription date : 30 November 2007
Messages : 17118
Unreal Tournament 2004 en OpenGL ? c'est pas via wine ?
bon en tout cas je n'utilise pas d'extension (justement) c'est ça qui me laisse perplexe.
le problème a l'air encore plus bas.
vais jeter un oeil aux sources de gtkglext pour voir.

@Augur : Tu n'aurais pas une idée sur ce problème ?
pareil

nochka85, Wednesday 23 July 2008 à 18:01


Subscription date : 29 November 2007
Messages : 7408
Unreal Tournament 2004 en OpenGL ? c'est pas via wine ?


Non, c'est du NATIF linux !!!

nochka85, Wednesday 23 July 2008 à 18:36


Subscription date : 29 November 2007
Messages : 7408
Au fait, je reposte tout ce que j'obtiens lorsque je lance avec l'option -o (je lance juste le dock ... et ne touche plus à rien) :

/build/buildd/gtk+2.0-2.12.9/gdk/x11/gdkdrawable-x11.c:878 drawable is not a pixmap or window
gtk_widget_set_gl_capability: assertion `GDK_IS_GL_CONFIG (glconfig)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
warning : (cairo-dock-config.c:cairo_dock_get_string_key_value:315)
Attention : Le fichier de clés n'a pas de clé « indicator image »
warning : (cairo-dock-config.c:cairo_dock_get_boolean_key_value:186)
Attention : Le fichier de clés n'a pas de clé « indicator above »
warning : (cairo-dock-config.c:cairo_dock_get_double_key_value:272)
Attention : Le fichier de clés n'a pas de clé « indicator ratio »
warning : (cairo-dock-config.c:cairo_dock_get_boolean_key_value:186)
Attention : Le fichier de clés n'a pas de clé « link indicator »
warning : (cairo-dock-config.c:cairo_dock_get_integer_key_value:229)
Attention : Le fichier de clés n'a pas de clé « indicator deltaY »
warning : (cairo-dock-config.c:cairo_dock_get_string_key_value:315)
Attention : Le fichier de clés n'a pas de clé « drop indicator »
cairo_dock_create_surface_from_image: assertion `rsvg_handle != NULL' failed
cairo_dock_create_surface_from_image: assertion `rsvg_handle != NULL' failed
cairo_dock_create_surface_from_image: assertion `rsvg_handle != NULL' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
warning : (cairo-dock-keyfile-utilities.c:cairo_dock_flush_conf_file_full:55)
Attention : couldn't find any installed conf file
warning : (cairo-dock-config.c:cairo_dock_copy_to_easy_conf_file:1640)
Attention : Aucun fichier ou dossier de ce type
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed
gdk_gl_drawable_gl_begin: assertion `GDK_IS_GL_DRAWABLE (gldrawable)' failed

AuGuR, Wednesday 23 July 2008 à 18:52


Subscription date : 25 June 2008
Messages : 49
Moi je seche ... C'est dans la création du context OpenGL peut-etre qu'il y a un paramêtre non accepté sur les ATI ou bien driver foireux, problème dans gtk ...

nochka85, Wednesday 23 July 2008 à 18:54


Subscription date : 29 November 2007
Messages : 7408
C'est pareil sur mon Eeepc qui a une puce graphique Intel .... avec EXACTEMENT les mêmes insultes

AuGuR, Wednesday 23 July 2008 à 18:57


Subscription date : 25 June 2008
Messages : 49
Et tu es le seul à avoir une ATI ou une intel ici ? Personne d'autre n'a ce problème ?

nochka85, Wednesday 23 July 2008 à 18:59


Subscription date : 29 November 2007
Messages : 7408
Bah on a demandé mais personne n'a répondu !!

Mav, Wednesday 23 July 2008 à 19:00


Subscription date : 29 November 2007
Messages : 3146
Je vais voir pour tester sur mon portable avec une vieille ATI Mobility Radeon 9600

Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] Effets OpenGL
Page : 1 2 3
AuGuR Français 53 cchumi [Read]
28 July 2008 à 10:53


Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Effets OpenGL 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.