Question pour le créateur de Purebasic (Fred)

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

wolfjeremy a écrit :Ogre étant un des meilleurs voir le meilleur moteur gratuit du web je ne pense pas que se soit se que tu ai voulu dire ou alors ta des crasse dans les yeux :D
Si c'est ce que je voulais dire, et merci pour moi, mes yeux sont propres.
Je n'ai pas critiqué Ogre, mais le moteur 3d de Purebasic, au cas où tu n'as pas remarqué, ce n'est pas Ogre, mais un wrapper de Ogre, donc avec moins de fonctionnalités, etc... En tout cas pour le moment.
Donc, pour résumer, nettoie tes yeux avant de parler de ceux des autres :lol:
Fred
Site Admin
Messages : 2652
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

C'est une discussion plutot interessante et j'avoue que je ne suis pas particulièrement fort en 3D. Si il ne manque que les quelques fonctions pré-citées, je vais essayer de voir ce qu'il est possible de faire.

Pour OGRE, c'est effectivement un des moteurs en vogue actuellement et même si exposer toutes ses fonctions en PureBasic n'est pas réaliste (la doc de OGRE fait 10x celle de PB), il est probablement possible de faire bien mieux.

Si quelqu'un se sent vraiment motivé (Comtois ? J'abuse vraiment, après le boulot que tu fais sur la doc :P), une petite aide n'est pas de refus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Bah alors Fred, tu serais pas un peu débordé en ce moment toi ?
Je vois vraiment pas pourquoi :D

En tout cas, mon niveau en 3D frisant le ground-zero, je laisse çà aux autres.
Image
Fred
Site Admin
Messages : 2652
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Flype a écrit :Bah alors Fred, tu serais pas un peu débordé en ce moment toi ?
Mais non, mais non ;).
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Fred a écrit :
Flype a écrit :Bah alors Fred, tu serais pas un peu débordé en ce moment toi ?
Mais non, mais non ;).
Ben non, quoi, tu as juste la version 4 à finir pour Windows, et à la sortir sur Linux et MacOsX, c'es tout :lol: :lol:
n'empêche, sérieusement, tu fais un sacré bon boulot :!:
Bon, ok, je t'en veux un peu de ne pas avoir inclut la possibilité de faire des user librairies directement avec pbcompiler, mais on peut pas tout avoir dans la vie :lol:
:wink:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

@Fred : n'avais pas tu dit que tu posterais le code source de ta modif d'Ogre ? car d'aprés ce que j'ai entendu, il y aurait certains anglais qui n'attendent que ca pour travailler dessus...
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Fred a écrit :C'est une discussion plutot interessante et j'avoue que je ne suis pas particulièrement fort en 3D. Si il ne manque que les quelques fonctions pré-citées, je vais essayer de voir ce qu'il est possible de faire.

Pour OGRE, c'est effectivement un des moteurs en vogue actuellement et même si exposer toutes ses fonctions en PureBasic n'est pas réaliste (la doc de OGRE fait 10x celle de PB), il est probablement possible de faire bien mieux.
Bon le chat sort le sac !!!

Je feuillette l'énorme Forum de OGRE régulièrement et il y a plein de sujet qui parle de fonctionnalité du moteur qui ne sont pas accessible avec PB. C'est dommage car il y en a plusieurs que j'aurais bien besoin pour mon projet.

- La Gestion des Sous-mesh
- Les joints entre les entitées
- La gestion des collisions
- La sélection d'élément (Entité, Vertice, Triangle) avec la souris.
- Les Materials qui peuvent générer de la lumière (Exemple : Un tir laser va illuminer les éléments qui l'entour)
- La possibilité de sauvegarder des géométries 3D dans le format MESH directement.

Pour ce qui des géométries de collision :

EntityPhysicBody(#Entity, #PB_Entity_BoxBody)

Comment la box est-elle générée ? Je présume en prennant les extrêmum des vertices de la mesh.

Si c'est le cas, l'erreur est acceptable dans le cas où la forme de la mesh est aligné avec un des axes. Par contre si la géométrie est dans un axe quelconque plus de 75% du volume de la boite est à l'extérieur de la mesh et donc des fausses collisions. On tire à coté et on frappe quand même la cible...

Donc faudrait avoir la possibilité soit :

- de donnée manuellement des points pour la/les boîte(s)
- de spécifier quel vertices utiliser pour former la/les boîte(s)

C'est beaucoup de travaille de programmation tout ça. Et on n'a pas encore commencé à dévelloper le jeu comme tel.

La question qui me parait la plus évidente serait pour Fred :

Est-ce que tu ne connais pas un programmeur professionnel spécialisé en jeux 3D qui pourrait te donner un coup de main ?

Moi avec l'université, j'ai malheureusement pas le temps.

A+
Guimauve
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Message par Coolman »

Fred a écrit :C'est une discussion plutot interessante et j'avoue que je ne suis pas particulièrement fort en 3D. Si il ne manque que les quelques fonctions pré-citées, je vais essayer de voir ce qu'il est possible de faire.

Pour OGRE, c'est effectivement un des moteurs en vogue actuellement et même si exposer toutes ses fonctions en PureBasic n'est pas réaliste (la doc de OGRE fait 10x celle de PB), il est probablement possible de faire bien mieux.

Si quelqu'un se sent vraiment motivé (Comtois ? J'abuse vraiment, après le boulot que tu fais sur la doc :P), une petite aide n'est pas de refus.
Je ne vois qu'une solution :P, achete toi un mac intel avec macos + l'emulateur Parallel ici :

http://www.lowendmac.com/mac2win/06/0420.html

et tu pourras installer et developper sur winxp linux et mac os sans rebooter, si avec ca tu n'arrives pas a accelerer le developpement :D...

Non, sans blague :), pour ogre fais un effort pour implementer les fonctions demandés par comtois guimauve et filax et ca devrait faire l'affaire, sinon ce que j'ai suggeré dans l'autre post me parait une bonne idee :wink:
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Moi ce que je reproche tout d'abord à Ogre, c'est la taille innaceptable de sa dll, et encore, le wrapper de Fred est bien mieux que la distribution Ogre normale, où il y a une dizaine de dll 8O
Moi qui aime bien quand tout est petit/rapide, une dll de 1.5mo :?
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Fred a écrit : Si il ne manque que les quelques fonctions pré-citées, je vais essayer de voir ce qu'il est possible de faire.
ça serait bien que l'initiateur du post donne aussi sa liste des fonctions qu'il attend pour se mettre à la 3D avec PureBasic. Ceux qui fréquentent son forum vous pouvez le joindre ?

Si quelqu'un se sent vraiment motivé (Comtois ? J'abuse vraiment, après le boulot que tu fais sur la doc :P), une petite aide n'est pas de refus.
En quoi consisterait l'aide ? faire des petits programmes de tests des nouvelles fonctions ? ou il s'agit d'autre chose ?


Si c'est pour tester les nouvelles fonctions , C'est faisable :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Message par Coolman »

Polo a écrit :Moi ce que je reproche tout d'abord à Ogre, c'est la taille innaceptable de sa dll, et encore, le wrapper de Fred est bien mieux que la distribution Ogre normale, où il y a une dizaine de dll 8O
Moi qui aime bien quand tout est petit/rapide, une dll de 1.5mo :?
La, c'est plutot du coté de irrlicht (la dll est d'env 1.5 a 2 mo, depend du compilateur utilisé pour la generer...) qu'il faut aller voir, je crois que dans le forum anglais il y'a une discussion a propos de ce moteur opensource pour l'adapter a purebasic, pour le wrapper destiné a freebasic, voici le lien :

http://www.freebasic.net/forum/viewtopic.php?t=3584

j'ai testé, ca fonctionne tres bien :)
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Coolman a écrit :La, c'est plutot du coté de irrlicht (la dll est d'env 1.5 a 2 mo, depend du compilateur utilisé pour la generer...) qu'il faut aller voir, je crois que dans le forum anglais il y'a une discussion a propos de ce moteur opensource pour l'adapter a purebasic, pour le wrapper destiné a freebasic, voici le lien :

http://www.freebasic.net/forum/viewtopic.php?t=3584

j'ai testé, ca fonctionne tres bien :)
Ah mais je n'ai pas dit qu'Irrlicht était mieux ;)
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Une chose que je trouve embêtante c'est que dans le source de OGRE il y a un système de calculs matricielle pour des matrices 3X3, 4X4. Dans ODE il y a un système similaire de calculs matricielle pour des matrices 3X3, 4X4.

Et dans l'état d'avancement de mon projet, j'ai un système en cours de dévellopement pour faire des calculs matricielles sur des matrices 3X3, 4X4. J'ai besoin de ça pour déterminer des Splines Cubiques paramétrique mono segment représentant les trajectoires entre 2 positions d'un entité.

J'ai pas vu comment Fred à arrangé ces systèmes de calculs, s'il les a combinés ou non, peu importe si on regarde bien on a 2 ou 3 systèmes de calculs différents, qui prennent de la place mémoire strictement pour rien puisqu'il sont écrits différemment, mais qui font la même chose.

Un autre problème que je trouve gênant c'est le Add3DArchive("MyData.zip", #PB_3DArchive_Zip) avec Parse3DScripts() sans nom de fichier script en paramètre.

Ce que prévoyait de faire pou mon projet l'archive contiendrait :

- 1 mesh pour l'extérieur, si le vaisseau peut être piloter 1 mesh de plus pour le cockpit.
- 4 séries de texture avec le Script material correspondant, s'il y a un cockpit, il y a 1 série de texture de plus avec son script.
- 1 Fichier binaire cripté contenant des information sur les caractéristiques de vol : Vitesse , Accélération, etc.

1er problème : Double ouverture du fichier ZIP, 1 par le jeu lui-même, 1 par le moteur 3D.
2e problème : Parse3DScripts() sans nom de fichier script en paramètre.

Pour le problème no.1, on n'a pas de librairie standard pour l'ouverture d'un fichier zip.

Faut aller sur PureArea ou PBOSL pour trouver une librairie à ajouter pour le faire travail.

Pour le problème no.2 la solution serait de faire comme suit avec les archives :

Chasseur - Logo rouge.zip
Chasseur - Logo bleu.zip
Chasseur - Logo vert.zip
Chasseur - Logo jaune.zip
Chasseur - Cockpit.zip
Intercepteur - Logo rouge.zip
Intercepteur - Logo bleu.zip
Intercepteur - Logo vert.zip
Intercepteur - Logo jaune.zip
Intercepteur - Cockpit.zip
...
...
...

Donc 4 copies de la même mesh, 4 copies du même fichier binaire cripté. C'est pas très élégant mais c'est le seul moyen pour que le moteur 3D soit contant. Mais pour les mises à jours des models 3D et des textures ça va être l'enfer.

A+
Guimauve
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

C’est une véritable offre en or que de pouvoir participer à la définition de nouvelles commandes!

Dommage que ma culture 3D soit vraiment minime.

Mais il y a deux aspects à cette culture 3D:
- celle liée de la connaissance pure de la 3D  malheureusement j’ai bien peur qu’il y est quasi personne et c’est bien dommage
- celle liée à la pratique via un lagague  certainement la plus répandue

@Filax : là balle est en partie dans ton camp pour « nous » aider!

@Comtois : bon courage…:lol:
leo.cd
Messages : 15
Inscription : lun. 24/avr./2006 20:41

Message par leo.cd »

Je pense qu'il est clair que la meilleur solution pour Fred soit de trouver un programmeur compétant, avec une bonne connaissance de la 3d pour s'occuper integralement de l'implémentation de la 3d dans Pure Basic.

Pour pouvoir aider Fred, la personne doit avoir une compétance autre que celle de l'utilisation du moteur Ogre ? Cela ne doit pas être si rare que ca une personne utilisant correctement Ogre non ?

Sinon qu'est ce que j'attend de Pure ?
=> Antialiasing
=> Bump Mapping
=> texture reflechisant la lumiere (miroir, mais pas integrale, la texture d'origine est mixée au reflet)
=> memes fonctionnalitées citées sur le moteur physique
=> pouvoir appliquer un vecteur force à une entity gérée par le moteur physique
=> pouvoir appliquer un vecteur vitesse à une entity gérée par le moteur physique
=> fonction renvoyant le vecteur vitesse appliqué à un objet
=> renvoi des coordonnées d'une entity à l'ecran
=> entity emetant de la lumiere
=> lueur autour d'une entity
=> pour ce qui est des déplacements et rotations sur les entitys ainsi que la camera et autre, fonctions disponibles en relatif et en absolu.
=> fonctions renvoyant les coordonnées des objet et leurs angles idem pour la camera (et source de particules etc etc)

Mes requetes concernant le moteur physique me semble indispensable. En effet, imaginons un jeu quelquonque ou à un moment donné une boule est en chute. Le joueur sauvegarde la partie. Lors du chargement future, la boule sera chargé à son emplacement avec une vitesse nulle, alors que lors de la sauvegarde elle était en pleine chute !!!!
Il en est de meme pour les fonctions renvoyant l'angle d'un objet. Le moteur physique va modifier les angles de ma boule. J'aurais besoin d'une fonction me renvoyant les angles de l'objet pour pouvoir sauvegarder et charger.

Appliquer un vecteur force à une entity permet de la mettre en mouvement si elle est gérée par le moteur physique !!! Car j'ai remarqué que les entitys confiées au moteur ne pouvaient plus etre déplacées ou tournées avant d'avoir fini leur chute / reaction avec l'univers. (une fois immobiles on peut les déplacer)

J'ai une derniere envie un peu utopique, il s'agit du HDR. je ne sais pas si c'est possible, mais la derniere version d'Ogre le supporte. Mais je ne sais pas quelle est la complexité de la tache.

Cela dit merci beaucoup à Fred pour ce merveilleu logiciel tres polyvalent, je commencais à en avoir assez de dark basic et de ses sauts d'humeur ...

EDIT : Une idée qui me vient à l'esprit, fonction un peu farfelue mais bien pratique. Une fonction qui renverait l'identifiant de l'entity sous la souris. Il pourait etre aussi pratique de savoir les coordonnées 3d de la collision souris /entity. C'est qu'en fait j'avais besoin de cette fonction, et je viens de voir que d'autres personnes la cherchent aussi sur le forum. J'ai presque fini de la faire sous forme de procedure mais je suis arreté dans mon développement à cause d'un probleme surement au niveau des collisions entre deux entitys de corps statics.
Dernière modification par leo.cd le lun. 24/avr./2006 21:16, modifié 1 fois.
Répondre