raafal - un project de framework d'application 3d

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

blendman a écrit :Question bête, mais tu as pensé à regarder le code de cycle ?
Je sais que c'est du C/c++, mais comme tu as déjà adapté ce code en purebasic, peut-être que tu y trouverais des infos intéressantes ;).
Oui bien sûr, tu penses bien, Cycles est définitivement dans ma ligne de mire, surtout vue le changement récent de sa licence :wink:

Mais pour l'instant je préfère partir de 'rien' ou presque (smallpt et c'est déjà pas mal) pour mieux apprendre et bien comprendre les techniques d'implémentation mises en jeu dans un pathtracer, et aussi pour tester certaines choses de mon côté qui ne sont pas dans Cycles et ce d'une manière relativement simple.
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
benmalartre
Messages : 2
Inscription : ven. 27/sept./2013 10:29

Re: raafal - un project de framework d'application 3d

Message par benmalartre »

Super rapide!
mais tous les gadgets sont vides, héhéhé...

Pour moi un gros canvas plutot que plein de petit c'est mieux(meme si ca bouffe plus de ressources)
car avec pleins de petit canvas quand tu vas bouger un splitter horizontal ou vertical et ainsi rafraichir plusieurs gadgets, tu vas avoir un effet de cascade,tu vas les voir se rafraichir les uns apres les autres...

A quand du code en ligne guy?
Non pas que je sois pressé mais pour pouvoir participer...

Ben
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: raafal - un project de framework d'application 3d

Message par MetalOS »

Salut Guy, si tu passe par là je voulais savoir si ton projet avait avancé depuis tous ce temps.
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

MetalOS a écrit :Salut Guy, si tu passe par là je voulais savoir si ton projet avait avancé depuis tous ce temps.
Salut MetalOS,

Le projet en lui-même a avancé mais le développement de l'application elle-même non. Je veux dire par là que depuis deux ans j'ai plutôt fait beaucoup de R&D sur différents sujets, mais je n'ai encore rien concrétisé en terme d'application Purebasic, d'autant que j'ai été accaparé par plusieurs prods - faut bien bouffer, toujours la même rengaine.. Du coup le temps passe et.. pfff.. deux ans déjà..

Vous devez vous dire, "raafal, ça sent l'arlésienne!" lol. Mais en fait non, bizarrement c'est quelque chose que j'ai constamment à l'esprit, je réfléchi à l'architecture, aux choix à faire, aux librairies à utiliser, etc.. et comme les technologies évoluent plus vite que mon temps disponible cela m’amène à remettre en question certaines options.. En fait, il s'agit aussi d'une question de fond sur l'orientation (ou la spécialisation) à donner à raafal (question de temps disponible.).

Depuis deux ans, j'ai abandonné l'idée de faire un framework 3D "générique" (à la Blender, etc..) mais plutôt de m'orienter vers ce qui m'intéresse le plus: le story telling un peu à la façon machinima (pour ceux qui connaissent, à la "iClone" ou "MovieStorm"). L'autre aspect est le procédural, ou comment générer quelque chose à partir de processus programmés qui s’enchaine ou se complète, un character, un props, un décors, que ce soit en terme de modeling, de texturing ou encore d'animation. Encore un autre aspect, l'immersion 3D (Occulus, etc..), pas forcement pour du rendu final mais plus pour de la fabrication (caméraman virtuel, etc..) ou de la simulation (mais là on entre dans le jeux et je suis plus mesuré dans mes ambitions).

raafal s'oriente probablement vers une combinaison de tout cela, beaucoup moins générique que le projet de départ mais en même temps beaucoup plus ciblé et abordable pour moi ( j'ai pas dit simple ; ) ).

Ceci dit, et ce qui est marrant, c'est que j'ai recommencé à travailler sur l'application elle-même il y a quelques semaines seulement, et maintenant ton message, c'est sympa.

Il faut dire qu'une chose m'avait grandement démoralisé: après de mois de pression, de pleurniche, d’allumage de cierges, de poupées vaudou brulées: la sortie de l'OpenGLGadget! En soit c'était génial, mais en pratique totalement inutile pour une application d'envergure car impossible de contrôler la configuration OpenGL (version, core profile, etc..). Sur Windows et Linux, la version de l'OpenGL est toujours la dernière, mais en mode compatibilité, alors que sur MaxOSX, on est coincé avec la version 2.1.. Du coup, ça sert à rien. Et je ne comprends toujours pas ce qui s'est passé dans la tête de Fred avec un tel truc! Alors que de son côté il aurait été tellement simple de faire un OpenGLGadget configurable. Du coup soit on attaque son propre truc en bidouillant les APIs natives, soit on utilise une libraire externe. C'est ce que j'ai choisi en utilisant glfw, mais du coup on bypass complètement le framework de messages et d'events de Purebasic. Dommage.. et tout cela pour un truc aussi idiot que de ne pas avoir un OpenGLGadget configurable! Mais bon. ( oui je sais vous sentez encore la rancœur à cet endroit après 2 ans.. désolé j'y travaille encore, un jour ça passera lol ;) ).

A part ça, techniquement, beaucoup de choses sont déjà en place, en fait, pour l'UI il faut juste que je réarrange le code que j'ai déjà pour de l'OpenGL, j'ai choisi un langage de scripting que je trouve vraiment super et que j'ai déjà utilisé sur des applis C/C++: Dao Script, le framework de l'application elle-même (config,prefs,logs,gestion d'erreurs,ui,inputs,scripting,etc..) est, en fait, presque en place, il faut juste que je finalise tout ça et ensuite je pourrai passer aux choses sérieuses.

Bref, tout ça pour dire que raafal n'est pas un caprice de quelques mois mis à l'abandon mais plutôt un "pet project" comme y disent là-bas, c'est à dire un projet "hobby" fétiche (et je n'ai que celui là en fait) qui se construit petit à petit et qui verra le jour tôt ou tard si je suis encore là 8O

Cordialement,
Guy.
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: raafal - un project de framework d'application 3d

Message par Ar-S »

Content de voir que raafal ne s'est pas perdu dans les triangle des Bermudes :)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: raafal - un project de framework d'application 3d

Message par G-Rom »

Bonjour Guy , ravi de te relire , vivement des images de tout cela ^^
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: raafal - un project de framework d'application 3d

Message par MetalOS »

Ouais j'ai hâte de voir ça. J' aimerai bien avoir un exemple de code avec quelques gadgets comme sur la capture de ta première version de l'UI. Je sais que tu utilise le canvasgadget mais pour le reste...
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

MetalOS a écrit :Ouais j'ai hâte de voir ça. J' aimerai bien avoir un exemple de code avec quelques gadgets comme sur la capture de ta première version de l'UI. Je sais que tu utilise le canvasgadget mais pour le reste...
A l'origine oui, mais comme je passe à l'OpenGL pour l'UI, je souhaitais utiliser l'OpenGLGadget. Mais vu qu'on ne peux le configurer.. je passe donc par la librairie glfw pour tout ce qui est gestion de fenêtres, d'entrées utilisateurs, de contexte OpenGL, etc..

Et, du coup, je ne peux ni utiliser 2DDrawing ni le nouveau VectorDrawing pour dessiner les contrôles et l'UI, alors je passe par une autre librairie externe: nanovg.. Tant de complications pour un simple OpenGLGadget non configurable :twisted:
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: raafal - un project de framework d'application 3d

Message par MetalOS »

Nanovg et compliqué a utiliser dans PB car je cherche depuis quelque temps une solution qui permet de faire une belle interface pour un projet.
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

MetalOS a écrit :Nanovg et compliqué a utiliser dans PB car je cherche depuis quelque temps une solution qui permet de faire une belle interface pour un projet.
Non, c'est pas compliqué, mais si tu utilises le CanvasGadget je pense que la nouvelle librairie VectorDrawing sera plus adaptée, d'autant qu’apparemment c'est aussi accéléré hardware, du moins sous Windows.

Nanovg est spécifiquement fait pour être utilisé avec l'OpenGL.
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: raafal - un project de framework d'application 3d

Message par MetalOS »

OK merci
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: raafal - un project de framework d'application 3d

Message par blendman »

salut

Ça fait plaisir de te revoir parmi nous :).
OpenGLGadget : impossible de contrôler la configuration OpenGL
Tu devrais poster un message dans la rubrique "feature request" du forum anglais ;).
En expliquant bien ce que tu souhaites faire, ça peut parfaitement fonctionner.

Par exemple, j'ai remarqué qu'il y avait de nombreux messages (dans features request) demandant d'avoir une lib 2D antialiasée et paf ! la lib 2D vectordrawing est sortie :D.
Moi, j'ai posté une feature request "rentertotexture" : pouvoir faire les opérations de dessins directement sur un sprite (comme l'ancienne usebuffer()) exactement comme on le fait avec le screen (donc avec DisplaySprite() notamment).
C'est fait pour ça cette rubrique, je suis certain que Fred et les autres développeurs en tiennent compte (c'est Freak qui a semble-t-il développé la lib 2D vectordrawing, si j'ai tout compris) ;).
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

blendman a écrit :salut

Ça fait plaisir de te revoir parmi nous :).
OpenGLGadget : impossible de contrôler la configuration OpenGL
Tu devrais poster un message dans la rubrique "feature request" du forum anglais ;).
En expliquant bien ce que tu souhaites faire, ça peut parfaitement fonctionner.

Par exemple, j'ai remarqué qu'il y avait de nombreux messages (dans features request) demandant d'avoir une lib 2D antialiasée et paf ! la lib 2D vectordrawing est sortie :D.
Moi, j'ai posté une feature request "rentertotexture" : pouvoir faire les opérations de dessins directement sur un sprite (comme l'ancienne usebuffer()) exactement comme on le fait avec le screen (donc avec DisplaySprite() notamment).
C'est fait pour ça cette rubrique, je suis certain que Fred et les autres développeurs en tiennent compte (c'est Freak qui a semble-t-il développé la lib 2D vectordrawing, si j'ai tout compris) ;).
Salut blendman, merci.

Il faut savoir que concernant cet OpenGLGadget, cela fait plusieurs années que "j'explique bien ce que je souhaiterai faire et ce qu'il serait souhaitable d'avoir dans PureBasic niveau OpenGL" 8O En fait j'ai bataillé des mois, j'ai même contacté Fred en privé lui proposant même de participer financièrement pour créer un OpenGLGadget et il était pour à priori, à l'époque. Et puis j'ai pas eu vraiment de retour de sa part jusqu'au jour où, ô miracle, un OpenGLGadget apparu dans PureBasic!

Sur le coup je me suis dit génial! Enfin! Merci Fred, t'es l'plus fort!! Et puis.. la désillusion.. pas moyen de configurer la version de l'OpenGL utilisée et - essentiel - pas d'équivalent d'un GetProcAddress() crossplatform pour récupérer les fonctions OpenGL!? En gros voilà un gadget inutilisable pour de gros projets à part pour faire mumuse.. Ben alors là je me suis dit mais comment est-ce possible !? Comment un gars aussi fort que Fred peut nous pondre un truc inutilisable, à moitié fini!? Ça ne lui ressemble pas. Manque de temps peut-être ? Ou manque d'intérêt ? Je ne sais pas.. je n'ai jamais su et je ne comprendrai jamais. Cela fait quoi, 1 an ? 2 ans que cet OpenGLGadget est sorti ? Et malgré mes remarques et suggestions sur le forum pour "finir" ce Gadget, rien.. Un vrai mystère digne de la matière noire.. :roll:

Alors je sais, on peut tout faire quand on attaque les API natives, je suis moi-même développeur C/C++, si je voulais faire ce projet en C/C++ j'aurai déjà oublié PureBasic. Mais comme ce projet en particulier est un hobby, et je veux qu'il le reste, et que j'adore PureBasic et que c'est pour moi plus fun de le faire en PureBasic (sans compter le côté challenge de l'histoire), et bien j'essaye de trouver les solutions pour faire le plus possible en PureBasic sans passer par des librairies externes. Et pour l'instant j'en suis à devoir utiliser glfw pour la gestion de fenêtres, de contexte OpenGL et d’événements utilisateur. En gros un pan entier de PureBasic qui est by-passé à cause de cet OpenGLGadget non fini. Conséquence je trouve ce projet beaucoup moins fun d'un coup : / J'utilise NanoVG aussi, mais crois-tu que la nouvelle librairie VectorDrawing marche avec l'OpenGL ? Mystère je n'ai pas regardé, mais ça serait le graal. Avec ça et un OpenGLGadget fini ce serait la porte ouverte a des application démentielles en PureBasic, du moins niveau UI. Et imagine maintenant qu'on puisse utiliser le 3DEngine en offline ou directement avec ces mêmes outils, sans qu'il nous bouffe l'accélération de notre souris! Le pied!

M'enfin voilà, on en est pas encore là, et peut-être que Fred et son équipe n'ont pas cette vision de PureBasic.

Et je trouve cela très dommage car en terme développement et d'ajouts à PureBasic cela ne représente, sommes toutes, pas tellement d'efforts au final. C'est juste une question de volonté et de faire marcher les bonnes librairies ensemble.

Cordialement,
Guy.
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

Merci Spock,

Mais ton exemple montre une utilisation de l'OpenGL obsolète, c'est ce que j'appelle faire mumuse avec l'OpenGL, de plus cette manière de dessiner avec la librairie 2D n'est pas accélérée hardware (ou bien cela a-t-il changé depuis?).

Si l'on veut utiliser les versions récentes de l'OpenGL (3.+), on est coincé sur Mac, car l'OpenGLGadget configure l'OpenGL en version 2.1, et sur les trois plateformes pas moyen de se mettre en mode Core (voire Debug), même si cela peut paraître accessoire, je subodore quand même que les drivers en tiennent compte sur certains points pour être plus efficaces.

Enfin plus pénalisant encore, on a pas de GetProcAddress() cross-plateforme fourni par l'OpenGLGadget (ou autre) pour récupérer les fonctions récentes de l'OpenGL.

En gros, détours obligatoire vers les API natives Windows, Linux et MacOSX (ou utilisation de librairies externes comme GLFW). Donc OpenGLGadget inutilisable.

Cordialement,
Guy.
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
Avatar de l’utilisateur
grabiller
Messages : 103
Inscription : lun. 10/sept./2012 11:55
Localisation : France - 89220 Rogny-Les-Septs-Ecluses
Contact :

Re: raafal - un project de framework d'application 3d

Message par grabiller »

@Spock

J'ai posté mon précédent message avant que tu n'édites ton message en ajoutant l'exemple avec Screen.

Le problème avec cette approche est que d'une part elle ne permet pas non plus de configurer quelle version d'OpenGL utiliser, et d'autre part on ne peut ouvrir qu'un Screen en même temps dans PureBasic, ce qui veut dire qu'on ne peut pas créer d'applications multi-fenêtres.

Là aussi, dites-moi si je me trompe, si quelque chose à changé à ce niveau là depuis deux ans.

Mais si l'on pouvait ..:
1) Ouvrir plusieurs Screen en même temps.
2) Choisir quelle version d'OpenGL utiliser avec Screen (+ une GetProcAddress() cross-platformes)
.. alors je ne serai pas contre utiliser les Screen au lieu de l'OpenGLGadget d'autant que du coup le 3DEngine marcherait implicitement avec ( et peut-être la librairie VectorDrawing accélérée hardware ? ).

Cordialement,
Guy.
guy rabiller | radfac founder / ceo | raa.tel | raafal.org
Répondre