PureBasic

Forums PureBasic
Nous sommes le Lun 03/Aoû/2020 16:14

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 67 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5
Auteur Message
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Jeu 18/Déc/2014 9:41 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4236
Localisation: Arras, France
Falsam> Sur developpez.com : http://jeux.developpez.com/faq/3d/?page=culling

Il y a des petites choses à ajouter qui sont fondamentales, notamment sur le backface culling. On comprend son importance quand on utilise un logiciel "pro" comme lightwave qui permet de maîtriser finement la modélisation. Cette technique concerne l'affichage ou non d'une face en fonction de son vecteur normal. A l'origine, il s'agissait d'éliminer rapidement des faces qui n'étaient pas directement visibles par la caméra. Par exemple, pour un cube, en théorie il y a six faces, mais en pratique, on ne peut en voir que 3 à la fois. Comment éliminer le calcul et l'affichage de ces faces ? Il suffit de calculer leur vecteur normal, on n'affiche la face que s'il est dans la même direction que la caméra.

A savoir : la normale dépend de l'ordre des vertices (les points), par exemple le sens horaire. Si on inverse le sens des points, on inverse la normale, bref, on retourne la face.

Une face est dite double (double sided) si on demande au moteur 3D d'afficher les deux côtés (si on tourne la face, elle est toujours visible). Si cela a parfois un côté pratique, c'est quelque chose qui est physiquement impossible, car l'épaisseur d'un tel objet serait nulle ! Il faut donc se méfier de cette possibilité.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Jeu 18/Déc/2014 19:08 
Hors ligne

Inscription: Mar 02/Déc/2014 12:16
Messages: 149
Bonsoir à tous,
Je constate,sur le code de Falsam, que les cubes tombés, se sont jamais à la meme place sur le damier.( une fois tombé.)
et pour compiler son code il faut avoir dans le meme répertoire, le fichier engine3D.dll, pour le lire.

A+


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Jeu 18/Déc/2014 22:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6966
Localisation: IDF (Yvelines)
@djes: Merci pour cette lecture qui a eu pour répercussion un léger mal de tète :)

klystron a écrit:
Je constate,sur le code de Falsam, que les cubes tombés, se sont jamais à la meme place sur le damier.( une fois tombé.)
ça me parrait normal puique les rebonds sont aléatoire. Lache un cube chez toi. Il ne retombera jamais à la même place. C'est la même chose dans un model 3D. Je n'ai pas codé quoique ce soit pour simuler le rebond de chaque cube.

klystron a écrit:
pour compiler son code il faut avoir dans le meme répertoire, le fichier engine3D.dll, pour le lire.
C'est faux.

- Pour compiler un code qui fait appel au moteur Ogre3D, il n'y a pas besoin de la dll engine3D.dll.
- Par contre, si tu crées un exécutable que tu souhaites diffuser ou juste t'en servir alors oui tu as besoin de ce fichier.

Engine3D.dll n'est à inclure que si tu utilises des fonctions 3D :)

_________________

➽ Config PureBasic : Windows 10 Version 64 Bits - DirectX 11 - PB 5.72

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Jeu 03/Sep/2015 22:39 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6966
Localisation: IDF (Yvelines)
Avec la version 5.40 LTS il y a quelques changements.

Modifications
- EntityPhysicBody() devient CreateEntityBody()
- TerrainPhysicBody() devient CreateTerrainBody()

Les codes concernés par ces modifications seront modifiés avec la version de production de PureBasic 5.40 LTS

Nouveautés.
Il est maintenant possible de créer des cones avec la fonction
CreateCone(#Mesh, Radius, Height, [NbBaseSegments, NbHeightSegments])

Si vous avez besoin d'un cône de collision, utilisez la fonction CreateEntityBody() avec le paramètre #PB_Entity_ConeBody

Les autres nouveautés.
- CameraCustomParameter() & ResizeCamera().
- FreeEntityBody() & FreeTerrainBody()
- ApplyEntityTorque(#Entity, x, y, z) - Applique une force rotative
- ApplyEntityTorqueImpulse(#Entity, x, y, z) - Applique une force rotative
J'ai fait des tests et j'avoue que la subtilité entres ces deux fonctions m'interpelle.

- Ajout des paramètres CollisionGroup & CollisionMask pour la fonction RayCollide()
- Ajout des flags #PB_Entity_DisableContactResponse & #PB_Entity_EnableContactResponse pour la fonction SetEntityAttribute()

_________________

➽ Config PureBasic : Windows 10 Version 64 Bits - DirectX 11 - PB 5.72

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Jeu 03/Sep/2015 23:07 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5164
ApplyEntityTorqueImpulse() change la vitesse angulaire immédiatement tandis que ApplyEntityTorque() ajoute le couple à l'existant et le restitue au pas suivant de la simulation.

C'est le même principe pour ApplyEntityImpulse() et ApplyEntityForce()

http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=1018

_________________
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.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Jeu 03/Sep/2015 23:34 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6966
Localisation: IDF (Yvelines)
Merci pour cette réponse Comtois mais ça reste quand même flou dans mon esprit.

Que ce soit ApplyEntityTorque() ou ApplyEntityTorqueImpulse() j'arrive à appliquer la même dynamique à un cube. Par contre les paramétres x,y et z sont différents.

J'ai posté un code en ce sens sur le forum anglais qui affiche deux cubes.
Le cube A est animé par ApplyEntityTorqueImpulse()
Le cube B est animé par ApplyEntityTorque()

Quand je presse la touche Espace, le mouvement est le même.
:arrow: http://www.purebasic.fr/english/viewtop ... 36&t=63070

:idea: Pour info l'aide ne s'affiche pas pour ces deux fonctionnalités. Par contre en bas de l'éditeur on peut lire.
ApplyEntityTorqueImpulse(#Entity, x, y, z) - Apply a rotation force to the #Entity
ApplyEntityTorque(#Entity, x, y, z) - Apply a rotation force to the #Entity

Ca manque de subtilité dans les explications.

_________________

➽ Config PureBasic : Windows 10 Version 64 Bits - DirectX 11 - PB 5.72

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Histoire d'un Cube (Notions de base à la 3D)
MessagePosté: Ven 04/Sep/2015 15:49 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3659
Localisation: Encore ?
Bonjour Falsam,

déjà merci pour ce travail que je n'ai pas eu le temps de tester.

Si tu as réussi à obtenir 2 séquences similaires de manière parfaite, c'est notable.

Ce travail de comparatif te permet d'observer que bla...Impulse te fait économiser quelques instructions. Peut-être même du temps CPU...


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 67 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye