Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TEST 3D AVEC MATRICE ET API POLYGON


Information sur la source

Catégorie :Divers Classé sous : 3d, api, polygon, matrice, moteur Niveau : Initié Date de création : 20/02/2006 Date de mise à jour : 01/03/2006 15:41:11 Vu / téléchargé: 7 383 / 1 203

Note :
9,11 / 10 - par 9 personnes
9,11 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voici un bout de code que j'ai fait pour comprendre les bases de la 3D, matrices de translation & rotation, projection, changement de plan etc... pas de D'OpenGl, ni de direct X, juste un mini moteur 3D avec l'API polygon. Il y a encore un petit problème de caméra avec des valeurs de Z négatives, je n'y ai pas encore regardé.

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

01 mars 2006 14:42:49 :
-Suppression de l'affichage des faces cachées. -Affichage des numéros des points. -Rotation par souris (merci à VBsorcier pour l'idée). -Divers bugs. -Début d'éditeur d'objet (nouvelle version en cours). Je planche actuellement sur l'éclairage...
01 mars 2006 15:41:12 :
Oups... mauvais zip... ha oui il y a le tri rapide (récursif) aussi pour les faces que j'ai ajouté.

Commentaires et avis

signaler à un administrateur
Commentaire de Alain Proviste le 21/02/2006 05:23:13 administrateur CS

je suis toujours pantois face à ce genre de sources...
quel courage :)

signaler à un administrateur
Commentaire de yoman64 le 21/02/2006 18:16:54

Waaaa drolement cool

signaler à un administrateur
Commentaire de Gally le 21/02/2006 18:30:17

Bonjour,

C'est pas trop mal, mais quand même assez lent avec des objets simple. Va falloir optimiser tout sa ;-), mais tres bon debut.

Si tu as le temps de voir mes sources il y a pas mal de trucs sur la 3D, mais les matrices c'est pas trop mon truc alors si tu veux me donner un coup de main sur cette partie...

Merci d'avance,
[Gally Home Corp]

signaler à un administrateur
Commentaire de Neo.balastik le 21/02/2006 18:42:39

Pareille réaction qu'Alain Proviste.  Beau travail !
Ce qui serait sympa, c'est d'avoir un disque en 3D.

signaler à un administrateur
Commentaire de bebelious le 22/02/2006 09:57:50

Merci pour les commentaires

C'est vrai c'est lent, mais j'ai pas fait ca pour la vitesse, c'est  un exemple pour expliquer et comprendre le principe de la 3D, j'ai fait ca pour moi et j'ai pensé que sa pourrait aider d'autres. Mon but n'est pas de refaire DirectX et OpenGL lol. j'ai pas le temps de refaire une version tout de suite mais je prend note des remarques pour une future version ;) bonne prog.

signaler à un administrateur
Commentaire de VBSorcier le 27/02/2006 20:10:29

Superbe !!!

(je trouve pas particulièrement que c'est lent)

ca fait 5 jours que je cherche se genre de code, helas sur VBFrance
j'ai pas trouvé mon bonheur (ni ailleur d'ailleur), j'ai tenter directX et OpenGL mais aucune source ne m'a satisfait, en plus c'était pour une appli toute bete, donc pourquoi s'embetter avec DX et OGL alors que sans on fait mieu :p désolé les DirectXiens et les OpenGLiens

j'ai modifier un peu ton code pour lorsque l'on click sur "PIC" et que l'on bouge la souris cela 'rotatione' l'objet 3D selon X et Y




Dim XStart,YStart ' à declarer tout en haut

Private Sub PIC_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        CrX.Value = 1
        CrY.Value = 1
        XStart = X
        YStart = Y
    End If
End Sub

Private Sub PIC_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim m(16) As Double
Dim a As Double
        a = PI / VIT.Value

    If Button = 1 Then
        For P = 1 To OBj.NbPoint
            If CrX = 1 Then
                CreerMatriceRotationY CDbl((X - XStart)/ 100), m
                OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
            End If
            If CrY = 1 Then
                CreerMatriceRotationX CDbl(((Y - YStart)/  100), m
                OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
            End If
        Next P
    End If

    Afficher
    COORD = "X:" & Round(Cam.Position.X, 2) & " Y:" & Round(Cam.Position.Y, 2) & " Z:" & Round(Cam.Position.Z, 2)

    XStart = X
    YStart = Y
End Sub

Private Sub PIC_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then CrX.Value = 0
    If Button = 2 Then CrY.Value = 0
End Sub

'pour la rotation de l'objet ***************************************************

Private Sub Calcul()
Dim m(16) As Double
Dim a As Double
        a = PI / VIT.Value
    
    For P = 1 To OBj.NbPoint
'        If CrX = 1 Then
'            CreerMatriceRotationX a, m
'            OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
'        End If
'        If CrY = 1 Then
'            CreerMatriceRotationY a, m
'            OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
'        End If
        If CrZ = 1 Then
            CreerMatriceRotationZ a, m
            OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
        End If
    Next P
End Sub


j'ai bidouillé ca vite fait et je me suis servi de tes checkbox comme variable intermedaire lorsque l'on click, et desactivé dans la partie calcul le X et Y

sinon le faite que dans PIC_MouseMove, j'ai mis "CreerMatriceRotationY" pour X et "CreerMatriceRotationX" pour Y c'est normal, je trouve que c'est plus logique lorsque l'on bouge la souris

le mieu c'est de tester

re-bravo, aller 9/10, car peut pas mettre 9.5 et que le 10 n'est pas justifier
nan je plaisante, je met 10 car j'en avais besoin, sinon c'etait 9 :p


bonne continuation
a+
VBSorcier

signaler à un administrateur
Commentaire de bebelious le 01/03/2006 15:27:28

Merci VBSorcier !

C'est pour ca que j'ai programmé ça, j'ai pas trouvé de source simple, alors j'en ai fait une, tout doucement, en cherchant des cours sur matrice, trigo, plan etc sur internet. Dans la mise à jour j'ai ajouté ton bout de code et divers truc (masquage des faces cachées etc..) mais je bloque sur la cam avec les valeur de Z négative... bref. Je bosse actuellement pour ajouter l'éclairage. Mon but final étant de faire un éditeur de d'objet 3D simple (points & faces & couleur) à la souris. il sera publié sur VBfrance bien sûr ! Voilà bonne Prog !!

signaler à un administrateur
Commentaire de Gally le 01/03/2006 16:08:11

Bonjour,

Pour ma part avec mes source sur la 3d je voudrais faire un viewer d'objet et un petit modeleur. Un peu comme ce ke tu veux faire pourquoi ne pas mettre sa en comment?

A++
[Gally Home Corp]

signaler à un administrateur
Commentaire de Alain Proviste le 01/03/2006 21:26:04 administrateur CS

bonne chance ^^

signaler à un administrateur
Commentaire de nihaoma le 28/03/2006 16:07:27

c'est vraiment un très bon code !
a vrai dire j'avais déja essayer de faire ce genre de chose, mais je ne suis jamais parvenu à obtenir un résultat aussi beau.
le code est simple (a quelques notions mathématiques pres), commenté et bon....
c'est une très bonne source, rien à dire...

signaler à un administrateur
Commentaire de lexsty le 01/05/2006 07:26:17

    Bonjour.

Bravo pour ce code très intéressant.
Simuler la 3D est une excellente application des maths et de la physique.

signaler à un administrateur
Commentaire de VBGenesis le 02/07/2006 11:42:39

Superbe! Bravo pour ce travail c'est exactement ce que je cherchait (3D sans DirectX ou autre). Si tu arrive à mettre de la lumiere et des ombres surtout met à jour ce serait vraiment interressant!
Bonne prog à tous

signaler à un administrateur
Commentaire de Eric9524 le 01/01/2007 18:40:19

Bonjour, c'est exactement ce que je cherchais, mais je suis tout de meme déçu (ca reste impressionnant, je ne saurai pas le refaire!) car les calculs ne m'ont pas l'air correct, quand on place la camera à x=y=z=0, plus rien ne répond... c'est pas bon signe. Et dans les faibles valeurs (positives), il y a des erreurs d'affichage manifeste! Je n'ai pas essayé les valeurs negative, mais tu sembles savoir qu'il y a deja des erreurs avec...
Je cherchais un exemple me permettant d'afficher des points et creer des lignes dans un repère 3D et pouvoir déplacer une camera et le déplacement de ton code me semble bizarre...

Voilà, si je me trompe, expliquez-moi ;) et si vous avez des sources qui semblent adaptées à mon besoin, n'hésitez pas non plus.

Merci et bonne année 2007

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Moteur graphique TOUT SIMPLE [ par Alain Proviste ] Salut les gens.Bien, je demande votre aide, simple, je veux juste qu'on me guide un tout petit peu parce que j'ai du mal à savoir par où commencer.Sim moteur 3D isométrique [ par Antony ] Bonjour tout le monde !uhm voilà j'ai un moteur 3d isométrique sous la main et j'aimerais en comprendre son fonctionnement bon je comprends quand meme Moteur 3d - avec gestion des .obj en XML [ par NeO78 ] Salut tout le monde ,Je recherche des personnes intéressées par la création d'un moteur 3d avec chargement et enregistrement des objets sous forme de Recherche person pour projet de Moteur 3D sous VB6+DirectX 8 [ par Tellurian ] SalutJe cherche des personnes qui voudraient créé un moteur 3D sous forme de DLL avec VB6 et DirectX 8.J'ai deja créé pa mal de moteur protoype mais l moteur 3d ou librairie graphique? [ par TheWhiteShadow ] encore un problème de nomenclature...enfin ce serait plutôt pour que vous confirmiez:librairie graphique: ensemble de fonctions qui permettent de géné Moteur 3D [ par FireWave ] Y a t il quelqu'un qui connais où puis-je trouver des sources d'un moteur 3D?MerciFireWave [Graphique] Moteur 3D [ par bricaland ] Salutation,Je cherche un moteur 3D soit gratuit soit lors de l'utilisation n'ayant pas de pub (c'est un peu génant quand même) permettant de faire du Moteur 3D fait en VB [ par POLARIS ] Salutation à la communauté 3D de Codes-sources.com Voilà un moteur 3D "NemoX" éveloppe depuis plus de deux ans en VB ce moteur&nbs DirectX ou Truevision?? [ par Youpien ] Bonjour,je souhaite débuter en programmation 3D sous vB6, le problème c'est que je ne sait pas sous quel moteur 3D commencé  à apprendre à programmer. Recontruction 3d [ par mimie_istase ] Salut à tous,Voila je travaille sur une reconstruction d'objets en 3d j'ai donc réussi à créer ma matrice de points (elle est de l


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.