TERRAIN 3D AVEC COLLISION

survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 - 5 nov. 2006 à 08:40
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 - 27 nov. 2009 à 20:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40209-terrain-3d-avec-collision

juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
27 nov. 2009 à 20:05
Ok merci. Comment activer la lumière ?
Utilisateur anonyme
27 nov. 2009 à 18:33
il faut activer la lumière pour que les matériaux fonctionnent. Et pour les collisions il faut savoir utiliser DirectX et avoir quelque notion de trigonométrie.
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
27 nov. 2009 à 12:10
Marche pas.
Voila se que jais mis :

Public Sub Render()
Set_MatrixWorld(PosChanged, Matrice, pv_Position, pv_Scale, pv_Rotation)
Dim i As Integer
For i = 0 To NumX
mdev.SetTexture(0, Tex(i))
mdev.Material = Mat(i)
Mon_Mesh.DrawSubset(i)
Next
End Sub

Mon objet 3D est de couleur verte (pas d'image), l'objet 3D reste blanc.
Aussi quand je place un objet 3D sur le terrain on peut le transpercer. Une possibilité de s'arrêter juste devant l'objet ? comme un mur.
Utilisateur anonyme
26 nov. 2009 à 18:40
si c'est tout blanc c'est qu'il manque la texture. Pour utiliser les couleur défini dans le model, ajoutez cette ligne dans la fonction Render de la classe mesh_static:
mdev.Material = Mat(i)
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
26 nov. 2009 à 18:15
salut. Avec le logiciel Metasequoia je fait mes objet 3D mais le probleme c'est qu'il n'y a pas de couleur. L'objet reste blanc.
Pouvez-vous m'aider ?
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
26 nov. 2009 à 12:50
Je viens de trouver pour modifier la forme de l'objet. Jais regardé le fichier X, "lenternred_mesh.X". Par contre y a énormément de nombre. En modifier 1 ligne jais modifier la forme du pied.
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
26 nov. 2009 à 12:13
Ok merci. Tout se passe au chargemen de l'objet 3D pour la forme. Apres pour la dimenssion
X Y Z c'est Scale.
Utilisateur anonyme
25 nov. 2009 à 17:03
non, pour avoir un cube il faut... charger le modèle 3d d'un cube. Vous devriez regarder plus attentivement le code source et comprendre comment DirectX fonctionne.
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
25 nov. 2009 à 13:19
Merci je vais tester. C'est aussi ça pour la forme arrondie de l'objet ? Si je veux faire un carrer 3D en modifiant ses fonctions je pourrai ?
Utilisateur anonyme
25 nov. 2009 à 12:25
c'est la propriété Scale = (1,1,1): la taille "normal", = (0.5,0.5,0.5): taille diminué de moitié, etc..
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
24 nov. 2009 à 21:57
Merci pour l'objet mais je voudrai savoirs comment modifier la forme de l'objet. Grandeur,largeur,hauteur ext...
Merci d'avance.
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
24 nov. 2009 à 16:51
Merci beaucoup ! Je teste.
Utilisateur anonyme
24 nov. 2009 à 15:18
je viens de mettre la source à jours. J'ai ajouté la classe mesh_static afin de charger/placer un objet 3d sur le terrain.
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
24 nov. 2009 à 13:04
Bonjour. ShadowTzu je viens d'explorer votre source sur l'objet 3D. Je ne trouve pas le boue de code qui définie la position, hauteur ext... d'un pilier.(objet)

Merci d'avance.
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
24 nov. 2009 à 07:21
Ok merci de votre réponse. Je regarde votre source ! (Je ne l'avais pas vue !)
Utilisateur anonyme
24 nov. 2009 à 00:16
coucou, je vous recommandes de jeter un oeil sur l'une de mes autres sources: NORMAL MAPPING, et plus précisément la classe: Mesh_static
juliengj Messages postés 95 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 9 mai 2013 1
23 nov. 2009 à 22:11
Bonjour a tous. Je viens de regarder votre source et je la trouve super.
Je voudrai savoir comment insérer un objet 3D dans se monde ?

Merci d'avance
cs_Children Messages postés 84 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 29 avril 2009
11 nov. 2007 à 19:07
Merci beaucoup de ton aide ShadowTzu ;). J'essaie de repéré quoi coorespond à quoi dans la source à fin de mieux m'y repéré. Sur ce, a+
Utilisateur anonyme
6 nov. 2007 à 22:21
Dans la classe terrain, regarde à partir de la création du vertex buffer et particulièrement cette ligne:

vertices(x + (y * Width)).Position.Y = Terrain(x, y)

le tableau Terrain à été créé à partir de la texture en niveau de gris donc donne la hauteur pour suivant x et y.
Pour avoir un terrain plat, il suffit donc de modifier cette ligne en:
vertices(x + (y * Width)).Position.Y = 0

(ou toute autres valeurs)
cs_Children Messages postés 84 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 29 avril 2009
6 nov. 2007 à 12:07
Bonjours, j'essaie de comprendre le code... Ce n'est pas gagner, mais est-ce que -si quelqu'un passe par ici- quelqu'un pour m'expliqué quel est le fichier à modifié pour créer, par exemple, un terrain plat. Est-ce directement dans le code généré pr la form "affichage", ou dans les classes?
La source marche très bien, mais manque par fois de commentaires....
Merci pour toute réponse fournit ^^.
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
21 nov. 2006 à 16:57
Je vois maintenant à 2 pied devant moi !! ca avance ! :P :P C'Est peux ête les drivers de ma carte 3d qui sont pas à jour. Je regarde sa et je ten reparle !
Utilisateur anonyme
21 nov. 2006 à 13:38
j'ai corrigé la taille des tableaux vertices et indices qui ne correspondaient pas avec la taille des vertex/index buffer. C'est peut-être ça qui provoquait ton problème bizzard4.
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
11 nov. 2006 à 23:38
Pour ma part très bon fps (> 180) sur X850@XTPE@570/600 Donc pas de soucis ^^ mais je suis sûr qu'avec une simple petite 8800GTX ça devrait tourner :>)
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
8 nov. 2006 à 04:57
Après avoir télécharger la nouvelle SDK j'ai encore le même problème. C'est vraiment domage car j'étais dans la conception d'un jeu et ta source serait telement utile pour la gestion des collisions. Si tu peux me l'expliquer je serais vrm content Merci !!
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
7 nov. 2006 à 23:58
Bin écoute d'après ta configuration ce sont deux très bonne carte graphique. Sur le 'petit' tu as tous de même 128 Mo et de bon composants qui l'entour. Je ne vois pas le souci dans ta configuration matériel !

Personnellement je pense plutôt logiciel, je ne vois que ca. Je l'ai testé que sur l'un de mes pc qui est équipé d'une MSI GeForce4 MX 460 VTP et cela marche à merveille mais quand je ferme l'application il m'affiche que le programme à planter par un message classique de Windows (Envoyer les infos à Billou ou pas :) )

Bonne source, bravo ShadowTzu, sa m'hérite un bon petit 8/10
En plus source 3D rester assez compliquer pour des programmeurs débutants. Voila un bon petit exemple :)
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
7 nov. 2006 à 18:20
Pour mon problème la carte 3d pourait t'elle être le problème ?
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
7 nov. 2006 à 13:16
Salut CUQ,
non avec VB Express no problème ! Si les erreurs que tu nous dis s'affiche c'est que le pack SDK n'est pas installer :) va sur le site de Microsoft pour le télécharger
cuq Messages postés 345 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 21 mars 2008 2
7 nov. 2006 à 11:41
Bonjour,
J'ai une question un peu en marge du code. Est-il possible de compiler le projet avec VB2005 Express.

Quand je charge le projet sous Express j'ai un problème de référence sur Microsoft.DirectX.Direct3D est-ce une limitation de la version VB2005 Express ? ou un problème de config sur mon pc ?
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
6 nov. 2006 à 14:04
Bon ! J'ai tester le même programme sur mon gros ordi avec une meilleur carte 3d et il marche a merveille !!

Ici j'ai une : Mobil Intel 945GM Express Chipset Family
Sur mon gros j'ai : GeForce 5700

Ici j'ai la SDK d'august et sur mon gros aussi.
Utilisateur anonyme
6 nov. 2006 à 12:54
pour fermer la fênetre il faut appuyer sur la touche Escape, ou sinon dans l'événement "FormClosing" de form1 ajoute ça:
If OnRender = True Then
OnRender = False
e.Cancel = True
End If

pour l'autre bug, quel version du Sdk et carte graphique as-tu?
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
6 nov. 2006 à 08:09
As-tu le dernier SDK , celui d'octobre ?
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
6 nov. 2006 à 05:46
Moi j'ai 2 erreurs apparente :S

Premierement qunad je ferme la fenêtre l'erreur suivante se produit :

Microsoft.DirectX.Direct3D.DriverInternalErrorException was unhandled
ErrorCode=-2005530585
ErrorString="D3DERR_DRIVERINTERNALERROR"
LastError=0
Message="Error in the application."
Source="Microsoft.DirectX.Direct3D"
...
Sur la ligne : mdev.Present()

Et aussi qunad j'ouvres je vois tout simplement rien. Si je bouge beaucoup je fini par voir un petit carré du plancher mais c'est comme si je verait pas plus qu'un pied devant moi.

Je suis vraiment interessé à cette source alors j'aurais de besoin d'aide pour corriger les 2 petits bugues. MErci !
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
5 nov. 2006 à 14:32
l'image qu tu utilises pour ta texture "map_test_TX.jpg" ,si tu la remplaces par une image avec du texte tu verras que le texte à un effet miroir il se lit à l'envers .
Utilisateur anonyme
5 nov. 2006 à 13:38
j'ai pas compris t'as question, quel image de fond?
sinon, non rien n'est à l'envers tout est bien à ça place :)
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
5 nov. 2006 à 13:30
Super ca marche , par contre pourquoi l'image de fond que tu affiches l'image elle apparait à l'envers (la gauche est à doite) , l'images est collée par dessous ?
Utilisateur anonyme
5 nov. 2006 à 11:09
il suffit de changer me.handle (form1) par ton picturebox, du genre:
T3D = New Engine(picture1.Handle, False)
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
5 nov. 2006 à 08:52
Une petite question est-ce que tu peux m'expliquer comment utiliser ton bout de code pour l'afficher dans une picturebox Merci
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
5 nov. 2006 à 08:40
Super ça marche nickel (vb2005)
Rejoignez-nous