begin process at 2012 02 16 18:30:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > TEST 3D AVEC MATRICE ET API POLYGON

TEST 3D AVEC MATRICE ET API POLYGON


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :8 809 / 1 300

Auteur : bebelious

Ecrire un message privé
Site perso
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

Les Membres Club peuvent 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é.

 Sources du même auteur

Source avec Zip Source avec une capture GESTION DES BLINDS POUR LE POKER
Source avec Zip Source avec une capture PAQUETS , CARTES , MAIN GAGNANTE POUR UN JEU DE POKER
Source avec Zip Source avec une capture ELASTO : PETIT JEU DE CIRCUIT AVEC UNE BOULE ET UN ÉLASTIQUE
Source avec Zip Source avec une capture BLOCS PAR 8 ( JEU À LA PUYO PUYO)
Source avec Zip Source avec une capture JACKPOT (MACHINE À SOUS)

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) MATRICE DE ROTATION, QUATERNION ET 3D par CGSI3
Source avec Zip SIMULATEUR PHYSIQUE FINALZ par Neron2005
Source avec Zip Source .NET (Dotnet) CLASSE POUR L'UTILISATION DE OGRE ET NEWTON par feanor91
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DU MOTEUR 3D OGRE, DU MOTEUR PHYSIQUE NEWTON ET ... par feanor91
Source avec Zip Source avec une capture VIEWER 3D POUR FICHIERS PLY UTILISANT L'API POLYGON par julien3d

Commentaires et avis

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

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

Commentaire de yoman64 le 21/02/2006 18:16:54

Waaaa drolement cool

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]

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.

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.

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

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 !!

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]

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

bonne chance ^^

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

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.

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

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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales