Liste des commandes 3D attendues :)

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Liste des commandes 3D attendues :)

Message par comtois »

Comme Fred est demandeur pour qu'on établisse une liste des commandes 3D qui manquent, j'ai fait ce post pour les regrouper.

Ne mettez ici que les fonctions qui manquent selon vous et rien d'autre. Ceci pour s'y retrouver facilement et éviter de noyer les commandes au milieu des commentaires :)


Voici le début de ma liste :

Avant tout, ce qui serait bien, ça serait de faire fonctionner les exemples et démos fournis avec OGRE sous PureBasic.

ça serait une bonne occasion de faire le point sur ce qu'il manque pour arriver aux mêmes résultats et surtout ça nous donnerait des exemples pour réaliser le même genre d'effets dans nos codes.


- 1 - Gestion des angles pour tous les objets 3D

- ça manque depuis le début, il n'y a que le moteur 3D qui connait ces infos et c'est indispensable dans une appli 3D.

- Puisque Ogre le permet, ça serait intéressant de pouvoir choisir entre les angles en radians ou en degrés.

- 2 - Gestion des rotations

Rotation en absolu et en relatif pour tous les objets 3D.

- 3 - Projection 3D -> 2D et projection 2D -> 3D

Pour effectuer un tir avec la souris. il faut connaitre la projection 3D de la position de la souris.

On peut aussi connaitre la position d'une Entity à l'écran avec une projection 3D -> 2D.

Peut-être ajouter une commande EntityIsVisible() , pour savoir si une entity est visible sur l'écran ou non.


- 4 - Picking avec la souris

Impossible de faire un jeu ou un éditeur 3D sans l'interaction souris entity.


- 5 - Possibilité de tracer une droite dans le monde 3D

LineXYZ(x1,y1,z1,x2,y2,z2,couleur)

ça permet de visualiser certains calculs( des fois j'aimerais vérifier le calcul des normales en les affichant sous forme d'une droite), mais aussi un effet graphique pour des démos ou des jeux.

- 6 - Classe Math

J'ai vu dans l'API d'ogre la class Math il y a plein de choses intéressantes dedans :
les calculs d'intersections, fonction qui détermine si un point se trouve dans un triangle, calcul des normales d'une face , etc..
tout ça c'est très utile.

- 7 - Les lumières

Pour améliorer les effets , il manque les spots, et peut-être d'autres types de lumières ?

Et un retour de la position des Light. LightX(), LightY(), LightZ()

- 8 - Les scripts pour les particules

J'ai lu que c'était prévu et c'est une bonne chose :)

- 9 - Ode

Est-ce qu'Ode permet de gérer des collisions glissantes ?
C'est à dire gérer un personnage qui se déplace dans un monde 3D constitué d'escaliers, de murs, d'obstacles divers et variés, sans faire rebondir le personnage sur les objets mais au contraire le faire glisser lorsqu'il entre en collision.

Les collisions glissantes sont indispensables dans de nombreux types de jeux.

- 10 - Scale / Resize Entity

Pour moi ScaleEntity() devrait être relatif, c'est à dire en multipliant la taille actuelle de l'entity par les valeurs du scale.

Et ResizeEntity() devrait être absolu , c'est à dire forcer la taille de l'entity aux valeurs du Resize quelque soit la taille actuelle de l'entity.

- 11 - La gestion des sous-mesh (demandeur : Guimauve)

- Contrôler l'affichage des sous-mesh
- Explosion d'un entité, rendre les sous-mesh indépendante (voir : http://www.ogre3d.org/phpBB2/viewtopic. ... 2882#92882)

- 12 - Rendu de la caméra sur une texture ( demandeur : CameleonTH)
CameleonTH a écrit :On utilise une camera pour l'afficher à l'écran ou méme en mettre plusieur à l'écran mais on peut pas faire des camera qui font un rendu vers un texture ou autre, et c'est sa que j'attend.
ça peut effectivement être sympa pour réaliser des effets miroirs ...

- 13 - Obtenir le trièdre de frenet (3 vecteurs 3D, l'axe x, l'axe y et l'axe z) d'un entité (demandeur : Guimauve)

J'ai besoin de ça afin d'aligner deux entités avant un opération d'arrimage.

- 14 - Les joints entre les entités (demandeur : Guimauve)

Plus précisément les joints fixe. Exemple un entité est attaché à une autre et la position relative doit être maintenu tant que le joint existe. (Dans mon cas un conteneur transporté par un vaisseau de transport, ou un missile transporté par un chasseur) Et les autres types de joints serait également les bienvenu.

- 15 - Obtenir la position absolue dans le monde 3D d'un vertice (demandeur : Guimauve)

Afin de l'utiliser comme point de départ d'un projectile (Un tir laser dans mon cas)

- 16 - Les Splines (demandeur : Guimauve)

Pour déplacer et animer les entités et les caméras

- 17 - Définir plusieurs coordonnées à un vertex

Si j'ai bien compris la doc d'ogre c'est possible
virtual void textureCoord (Real u, Real v)

Add a texture coordinate to the current vertex.

Remarks:
You can call this method multiple times between position() calls to add multiple texture coordinates to a vertex. Each one can have between 1 and 3 dimensions, depending on your needs, although 2 is most common. There are several versions of this method for the variations in number of dimensions.
C'est le genre de truc qui m'arrangerait grandement pour ma lib sur les matrices :)

- 18 - Création d'un pivot
Association d'une entity à un pivot
Dissociation d'une entity à un pivot.

Prendre pour exemple ce qu'il est possible de faire avec Dreamotion3D
Dernière modification par comtois le dim. 08/juil./2007 19:17, modifié 12 fois.
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.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

- 11 - La gestion des sous-mesh

- Contrôler l'affichage des sous-mesh
- Explosion d'un entité, rendre les sous-mesh indépendante (voir : http://www.ogre3d.org/phpBB2/viewtopic. ... 2882#92882)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

@Guimauve, le 11 équivaudrait à gérer un parent pour chaque mesh ?
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

Sinon aussi ce qui serait bien serait:
- 12 - la gestion de plusieurs cameras et le RenderToTexture.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

CameleonTH a écrit :Sinon aussi ce qui serait bien serait:
- 12 - la gestion de plusieurs cameras et le RenderToTexture.
La gestion de plusieurs caméras , ça existe déjà , ou alors tu penses à quelque chose en particulier ?


tu pourrais en dire plus sur le RenderToTexture ? en quoi ça consiste ?
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.
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

On utilise une camera pour l'afficher à l'écran ou méme en mettre plusieur à l'écran mais on peut pas faire des camera qui font un rendu vers un texture ou autre, et c'est sa que j'attend.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

CameleonTH a écrit :On utilise une camera pour l'afficher à l'écran ou méme en mettre plusieur à l'écran mais on peut pas faire des camera qui font un rendu vers un texture ou autre, et c'est sa que j'attend.
Genre pour pouvoir faire un moniteur de surveillance en 3D c'est ça ? On voit ce qui se passe ailleur via une texture.
C'est interessant ça !
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

- 13 - Obtenir le trièdre de frenet (3 vecteurs 3D, l'axe x, l'axe y et l'axe z) d'un entité

J'ai besoin de ça afin d'aligner deux entités avant un opération d'arrimage.

- 14 - Les joints entre les entités

Plus précisément les joints fixe. Exemple un entité est attaché à une autre et la position relative doit être maintenu tant que le joint existe. (Dans mon cas un conteneur transporté par un vaisseau de transport, ou un missile transporté par un chasseur) Et les autres types de joints serait également les bienvenu.

- 15 - Obtenir la position absolue dans le monde 3D d'un vertice

Afin de l'utiliser comme point de départ d'un projectile (Un tir laser dans mon cas)
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Ça ne fait pas vraiment partie du moteur 3D mais je l'ajoute quand même.

- No. ??? - Une mise à jour de la librairie Joystick

- Le support du force feedback
- Le support des 4 Axes et des 18 boutons (Axe x, Axe y, Axe z et la manette des gaz)
- Bien sûr un nombre entre -1.00000 et 1.00000 pour les Axes x,y,z et de 0.00000 et 1.00000 pour la manette des gaz
Dernière modification par Guimauve le mer. 14/juin/2006 23:15, modifié 1 fois.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Pour les Joystick tu devrais pouvoir trouver des lib :wink:
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

wolfjeremy a écrit :Pour les Joystick tu devrais pouvoir trouver des lib :wink:
Celle que PB possède en Standard est inutilisable. Elle est vraiment trop obsolète pour la programmation d'un jeu moderne.

Selon moi, c'est inutile de faire une librairie que personne n'utilise où presque.

Et dans les fichiers include de jaPBe, il y a déja un fichier include qui fait ce que j'ai besoin à l'exception du force feedback. Le problème c'est que je dois copier le fichier dans le répertoire du source de mon jeu pour compiler à la fois avec PB et jaPBe.

Voilà

A+
Guimauve
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

à l'exception du force feedback, j'ai fais une userlib (pb4) qui gère tout çà.
si tu as besoin de quoique ce soit rapport à cette lib, je le ferais.

le force feedback ne peut etre implémenter qu'au travers de directx or j'utilise la lib multimedia de windows.
Image
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Pour l'instant, je n'ai pas une manette qui offre du feedback mais je vais la remplacer eventuellement. Et la prochaine elle sera à retour de force.

@Flype

J'ai téléchargé ta librairie, vais voir ce que ça donne.

A+
Guimauve

P.S. Le fichier include de jaPBe n'est pas à date pour la V4.00 de PB.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

- 16 - Les Splines

Pour déplacer et animer les entités et les caméras
Répondre