Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Kubic3D
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Kubic3D

Posté le 04/06/2014 14:46

Je me suis lancé ce matin dans la création du moteur 3D pour prizm. Nommé Kubic3D (en hommage de ce super sport que j'ai fait, le Rubik's Cube), je l'utiliseraispour mon jeu YuGiOh sur prizm (je trouve la 3D des Graphs pas très jolie même si des efforts sont fait dessus).

Ce moteur sera codé en C++ pour que ça me fasse de l'entrainement.

Je laisse les sources du moteur ici:
http://pastebin.com/ZcPFY57w
http://pastebin.com/bsWbC31m
http://pastebin.com/cRa3sL3R


Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 05/06/2014 21:33 | #


Je te conseille fortement de jeter un oeil au travail de AHelper, il avait adapté un fork de OpenGL sur Prizm et les performances étaient plutôt encourageantes.

Voici le topic où il en parle : http://www.cemetech.net/forum/viewtopic.php?t=7730
Regarde également son profile cemetech, il a publié 2 programmes de démo du moteur.

Le gros du boulot sur un moteur 3D basic (sans shaders ni lights), c'est gérer efficacement les matrices de transformation pour éviter au maximum les opérations lourdes (divisions et calcul trigo).
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 06/06/2014 14:27 | #


http://www.cemetech.net/forum/profile.php?mode=viewprofile&u=2238

AHelper ne fournit pas les sources avec

Ajouté le 07/06/2014 à 09:46 :
J'ai trouvé un tuto qui me donne un code source tout chaud . http://loulou.developpez.com/tutoriels/moteur3d/partie8/#L3.1

Ais comme c'est pour pc et non prizm, je vais devlir l'adapter voire juste m'en inspirer
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 07/06/2014 09:48 | #


C'est pas drôle si ce n'est pas toi qui l'invente.
Surtout que tu risques d'avoir du mal à l'adapter.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 10/06/2014 14:37 | #


je bloque dans la géométrie dans l'espace.

j'ai un plan et 2 vecteurs contenus dans ce plan. je voudrais trouvé la normale n de ce plan,

avec v1 (x1,y1,z1) et v2(x2,y2,z2), et n (x,y,z)

En clair je voudrais résoudre ceci
v1.n = x1*x + y1*y + z1*z = 0
v2.n = x2*x + y2*y + z2*z = 0 (produit scalaire)

et trouver x, y et z en fonction de x1, x2, y1, y2 ,z1 et z2

Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 10/06/2014 14:38 | #


n = v1 ^ v2.
Par exemple.

Ajouté le 10/06/2014 à 14:41 :
x = y1*z2 - z1*y2
y = z1*x2 - x1*z2
z = x1*y2 - y1*x2
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 10/06/2014 14:43 | #


cool le produit vectoriel, comme je l'ai jamais étudié(sauf en SI, mais bon super vite --'), je sais pas à quoi il sert.

Merci bien
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 10/06/2014 15:35 | #


Les quaternions utilisent des vecteurs de 4*1 afin d'avoir les coordonnées plus un facteur qui permet de corriger les "erreurs de précision". Ça sert aussi pour éviter le gimbal lock. Après, c'est ce que j'ai cru comprendre de mon cours qui a été torché plus vite que la musique...
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 10/06/2014 15:36 | #


Je ne suis pas sûr que la calcul dans H soit très optimisé en C
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 10/06/2014 15:37 | #


Tu veux peut-être le faire en ASM? Mmmh?
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 10/06/2014 15:37 | #


Hmmm, pourquoi pas... et puis par récurrence, calcul dans O ! Soyons fous !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/07/2014 18:01 | #


les résultats sont encourageants, je peux afficher des points et des lignes avec une camera mobile mais non-rotative direction(1,0,0) . je vais commencer la rotation
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 02/07/2014 18:02 | #


Et c'est optimisé ?
Je veux dire, tu devrais mettre en place, si ce n'est déjà fait, un petit module pour afficher les FPS.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/07/2014 18:20 | #


je vais le faire après, là je bloque un peu sur les équations pour la rotation
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 02/07/2014 18:22 | #


Bon courage.
Je suis passé par pas mal de trucs, de la preuve que les arêtes d'un cube étaient parallèles 4 à 4 dans l'espace à des mesures de semi-infini avant de trouver ces formules.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/07/2014 19:08 | #


Lephenixnoir a écrit :
Je suis passé par pas mal de trucs, de la preuve que les arêtes d'un cube étaient parallèles 4 à 4 dans l'espace à des mesures de semi-infini avant de trouver ces formules.




je réfléchis plutôt à mettre en lien le théorème de thalès et de la trigo
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 02/07/2014 19:13 | #


Ben, le problème c'est que la trigo, fondamentalement c'est que dans les triangles rectangles.
Du coup, je te conseille d'utiliser la relation d'Al-kashi.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 03/07/2014 15:03 | # | Fichier joint


Al-kashi, j'arrive pas à l'intégrer à mon problème,

Petit Topo, regarde



O position de la camera connue.
[OA'] la distance focale connue
[A'M'] la distance de l'image du point M au milieu de l'écran
alpha l'angle de rotation en z

on a AM / AO = A'M' / A'O

la position de M est connue, je veux trouver les coordonnées de A tel que OA est pependiculaire à AM.



Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 03/07/2014 15:09 | #


Les points M et M' sont-ils fixes ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 03/07/2014 15:12 | #


oui, ils sont fixes
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 03/07/2014 15:14 | #


Je voudrais pas dire une bêtise, mais dans ce cas si on fait la rotation de (OA) autour de O, on ne risque pas de perdre le parallélisme des droites (AM) et (A'M') ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 03/07/2014 17:37 | #


petite erreur de ma part, M' n'est pas fixe, par contre, il appratient à la droite(AM) dont M est fixe.

Et A n'est pas fixe non plus

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 95 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd