-
La 3D sous GTK+3
Bonjour à tous,
Je sais que je relance une question déjà 1000 fois posée mais je ne trouve pas de solution qui me satisfasse : comment faire de la 3D sous GTK+3. Il y a plusieurs solutions :
gtkglarea : non compatible avec GTK+3. Cependant : (www.mono-project.com/GtkGLArea : The use of Cairo and Glitz drawing surface is being considered as an OS-agnostic alternative to the GLX, WGL, AGL mess that has been used until now. )
cairo : permet également l'accélération matériel mais ne semble gérer que le 2D.
cairo-gl : mais je ne trouve pas du tout comment l'utiliser. En fouillant dans la source, il y a bien un petit exemple mais il s'agit juste d'un test sans affichage graphique.
SDL, opencv : il n'y a pas la possibilité d'intégrer une fenêtre sdl ou opencv à l'intérieur d'une fenêtre de type GTK_WINDOW pour une intégration complète.
Ce que je souhaite faire n'est pas un moteur 3D pour un jeu mais simplement pouvoir dessiner des structures simples (en gros : des cylindres et des cubes), leur appliquer une texture et si possible pouvoir faire tourner le tout et zoomer (un peu comme un logiciel de conception 3D).
Dans mon cas, l'idéal serait d'utiliser cairo qui (normalement) supporte le backend HTML5 bien que ça m'étonnerait que cairo-gl soit supporté.
Voilà, je suis ouvert à toutes les solutions. A défaut de solution, je suis également prêt à coder l'affichage sur cairo en calculant une projection 2D de la structure 3D mais même dans ce domaine, je n'arrive pas à trouver comment (mathématiquement) programmer ça.
Merci
-
Un peu de pub perso : M3dLib.
A toi de voir...
-
Merci, je vais regarder ça. En plus c'est cool, ça utilise cairo et ça semble vraiment prometteur. Je vais vérifier si j'arrive à faire ce que je veux avec, surtout que ça a été fait en gtk+2.
Mais je suis quand même étonné qu'il n'existe aucun environnement "populaire" qui permette ce que je veux. Enfin si, il y a bien gtkglarea mais il n'est pas compatible gtk+3. C'est vraiment dommage que cairo ne gère pas la 3D :(
-
Peut être que clutter permet de faire du rendu opengl arbitraire, je ne sais pas, j'ai jamais regardé ce qu'il y avait exactemnet dans l'API...
-
Merci, je vais regarder du coté de clutter ce que ça peut donner.
Sinon, j'ai aussi réussi à adapter la M3dlib de gerald3d pour gtk+3 et à transformer mon programme pour qu'il puisse se compiler sous g++. Je vais donc aussi regarder et tester les deux ensemble pour voir ce que ça peut donner.