Page 2 sur 4
Publié : dim. 19/déc./2004 16:25
par comtois
Pacificator a écrit :If LoadMesh(0,"savant2.max.mesh")= 0
Debug "le fichier n'est pas chargé"
EndIf
S'il ne t'a rien affiché, c'est que le fichier est chargé.
Le prob est qu'elle est chargée, n'est pas visible.
Faudrait juste que tu crée un materiau que t'associe a la mesh, pour qu'elle soit visible.
exemple:
LoadMesh (0, "Robot.mesh")
CreateMaterial(1, LoadTexture(2, "r2skin.jpg"))
CreateEntity(0, MeshID(0), MaterialID(1), 300, 0, 300)
oui , ça manque tu as raison , je n'ai pas fait attention à ça .
Mais pour l'instant son problème c'est le fichier qui ne se charge pas.
comme il a fait ce test
Code : Tout sélectionner
If LoadMesh(0,"savant2.max.mesh")= 1
Debug "le fichier est bien chargé"
EndIf
et que rien ne s'affiche , c'est que soit il ne passe pas par cette ligne, soit il n'a pas le débuggeur activé .
Publié : dim. 19/déc./2004 17:29
par Pacificator
ah oui, exact
et le debuger on l'active comment?
Publié : dim. 19/déc./2004 19:42
par vedder
merci de m'aidet , ca me touche , j'ai legerement modifié mon code, j'utilise comme editeur celui de purebasic et je sais activer le debbugueur , d'ailleur je passe cette ligne : If Screen3DRequester()
Code : Tout sélectionner
IncludeFile "Screen3DRequester.pb"
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data\" , #PB_3DArchive_FileSystem)
Add3DArchive("Data\camp.zip", #PB_3DArchive_Zip)
Add3DArchive("Data\savant.zip", #PB_3DArchive_Zip)
Add3DArchive("savant.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
LoadMesh(0,"savant2.max.mesh")
CreateMaterial(1, LoadTexture(2, "savant.jpg"))
CreateEntity(0, MeshID(0), MaterialID(1), 300, 0, 300)
CreateLight(0, RGB(0,0,255), 100.0, 0, 0)
CreateLight(1, RGB(255,0,0), -100.0, 0, 0)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,100)
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -1
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = 1
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -1
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = 1
Else
KeyY = 0
EndIf
If KeyboardPushed(#PB_Key_PageUp)
RollZ = 3
Else
RollZ = 0
EndIf
If KeyboardPushed(#PB_Key_Add)
Frame.f+0.005
EndIf
EndIf
If ExamineMouse()
MouseX = -MouseDeltaX()/10
MouseY = -MouseDeltaY()/10
EndIf
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
; ExecutableFormat=Windows
; DisableDebugger
; EOF
voici le mesh :
http://fo3dteam1.free.fr/Infographie/Ve ... 2.max.mesh
Publié : dim. 19/déc./2004 20:06
par comtois
Comme je n'avais pas ton fichier pour la texture, j'en ai créé une .
Et j'ai orienté la camera vers ton entity
CameraLookAt(0,EntityX(0),EntityY(0),EntityZ(0))
Et maintenant ,tout fonctionne .
C'est toi qui a fait le modèle ? il est super.
Code : Tout sélectionner
IncludeFile "Screen3DRequester.pb"
#Speed=5
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data\" , #PB_3DArchive_FileSystem)
Add3DArchive("Data\camp.zip", #PB_3DArchive_Zip)
Add3DArchive("Data\savant.zip", #PB_3DArchive_Zip)
Add3DArchive("savant.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
If LoadMesh(0,"savant2.max.mesh")=0
End
EndIf
CreateTexture(0,64,64)
StartDrawing(TextureOutput(0))
Box(0,0,64,64,RGB(255,0,0))
StopDrawing()
CreateMaterial(1, TextureID(0))
CreateEntity(0, MeshID(0), MaterialID(1), 300, 0, 300)
CreateLight(0, RGB(0,0,255), 100.0, 0, 0)
CreateLight(1, RGB(255,0,0), -100.0, 0, 0)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,100)
CameraLookAt(0,EntityX(0),EntityY(0),EntityZ(0))
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -1
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = 1
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#Speed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #Speed
Else
KeyY = 0
EndIf
If KeyboardPushed(#PB_Key_PageUp)
RollZ = 3
Else
RollZ = 0
EndIf
If KeyboardPushed(#PB_Key_Add)
Frame.f+0.005
EndIf
EndIf
If ExamineMouse()
MouseX = -MouseDeltaX()/10
MouseY = -MouseDeltaY()/10
EndIf
RotateEntity(0,0.5,0,0)
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
; ExecutableFormat=Windows
; DisableDebugger
; EOF
Publié : dim. 19/déc./2004 20:07
par comtois
Pacificator a écrit :ah oui, exact
et le debuger on l'active comment?
regarde dans le menu , "Compilateur"
Publié : lun. 20/déc./2004 21:42
par vedder
merci merci c'est genial ca marche !!!
il me reste encore un truc , on ne voit pas la texture a cause des eclairages et encore je sais pas si la texture se charge car je n'ai rien dans le debbuger lors de ma condition :
Code : Tout sélectionner
IncludeFile "Screen3DRequester.pb"
#Speed=5
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data\" , #PB_3DArchive_FileSystem)
Add3DArchive("Data\camp.zip", #PB_3DArchive_Zip)
Add3DArchive("Data\savant.zip", #PB_3DArchive_Zip)
Add3DArchive("savant.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
If LoadMesh(0,"savant2.max.mesh")=0
End
EndIf
If LoadTexture(0,"savant.jpg") = 1
Debug "la texture est bien chargée"
EndIf
StartDrawing(TextureOutput(0))
Box(0,0,64,64,RGB(255,255,255))
StopDrawing()
CreateMaterial(1, TextureID(0))
CreateEntity(0, MeshID(0), MaterialID(1), 100, 0, 0)
CreateLight(0, RGB(0,0,255), 100.0, 0, 0)
CreateLight(1, RGB(255,0,0), -100.0, 0, 0)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,50,200)
CameraLookAt(0,EntityX(0),EntityY(0),EntityZ(0))
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -1
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = 1
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#Speed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #Speed
Else
KeyY = 0
EndIf
If KeyboardPushed(#PB_Key_PageUp)
RollZ = 3
Else
RollZ = 0
EndIf
If KeyboardPushed(#PB_Key_Add)
Frame.f+0.005
EndIf
EndIf
If ExamineMouse()
MouseX = -MouseDeltaX()/10
MouseY = -MouseDeltaY()/10
EndIf
;RotateEntity(0,0.5,0,0)
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
; ExecutableFormat=Windows
; DisableDebugger
; EOF
Publié : lun. 20/déc./2004 22:10
par comtois
ben tu peux déjà supprimer ces lignes :
Code : Tout sélectionner
StartDrawing(TextureOutput(0))
Box(0,0,64,64,RGB(255,255,255))
StopDrawing()
tu as placé ta texture dans le même répertoire que ton programme ?
et si tu mets
Code : Tout sélectionner
If LoadTexture(0,"savant.jpg") = 0
Debug "la texture n'est pas chargée"
EndIf
tu as quelque chose dans le debuggeur ?
Publié : mar. 21/déc./2004 9:07
par vedder
oui j'ai mis la texture dans le meme repertoire que mon programme , et le test avec le debbuguer ne donne rien
Publié : mar. 21/déc./2004 12:19
par comtois
comme d'habitude ,si tu veux que je fasse un test , il faut mettre ton fichier texture quelque part .
Publié : mar. 21/déc./2004 19:39
par vedder
voila la texture merci comtois pour tout ce que tu fais c'est super !!
http://fo3dteam1.free.fr/Infographie/Vedder/savant.jpg
Publié : mar. 21/déc./2004 20:02
par comtois
alors ta texture se charge bien , et elle est appliquée au mesh .
Mais elle est dupliquée sur chaque facette qui compose ton mesh, en clair , c'est sûrement une mauvaise définition de la texture du mesh .
Je ne connais pas les logiciels de modélisation , il faudrait que quelqu'un te donne des infos sur la façon de procéder .
Est-ce que tu peux mettre ton fichier au format 3DS , je voudrais déjà voir si je peux le charger correctement avec la texture avec un explorateur 3D.
ensuite je pourrai essayer de le convertir avec un utilitaire que j'ai bricolé .
Publié : mar. 21/déc./2004 21:07
par Pacificator
alors ta texture se charge bien , et elle est appliquée au mesh .
Mais elle est dupliquée sur chaque facette qui compose ton mesh, en clair , c'est sûrement une mauvaise définition de la texture du mesh.
Oui, et je connais une méthode pour texturer facilement sous 3ds Max5, je vais expliquer de tête:
Pour commencer télécharge le plugin "Texporter" et installe le (il est gratuit).
Ensuite lorsque tu a terminé ta mesh, tu va dans modificateur, tu fait "Develloper UVW" , et le menu généré, tu fais "editer"
Une fenetre apparait tu fais "correspondance" puis "applatir correspondance". Tu ferme la fenetre.
Tu lance Texporter, et tu génère une texture de ta mesh tu la sauve, puis tu prend un logiciel genre photoshop pour "peindre" ta texture.
Et voila, une texture sur mesure pour ta mesh
Edit => si la texture se répète sur chaque face, c'est que les coordonnées UVW de la mesh n'ont pas été définis. C'est pour cela qu'il faut faire "Develloper UVW" dans 3dsmax, pour integrer a la mesh des coordonées uvw
Publié : mer. 22/déc./2004 22:59
par vedder
Publié : jeu. 23/déc./2004 12:46
par comtois
je viens de faire un essai de conversion de ton fichier 3DS en mesh avec mon utilitaire , c'est déjà mieux.la texture est bien répartie.
Au premier essai j'ai cru que ça n'allait pas , mais ensuite je me suis souvenu que pour l'instant l'axe V des textures est inversé , il faut passer par une image pour inverser les textures .ou tout simplement retourner l'image dans un éditeur et l'enregistrer .
(normalement , il ne faudra plus le faire avec la prochaine version d'ogre )
ce soir je mettrai en ligne le résultat de mes tests .
tu verras ce que ça donne.
Je vais essayer de corriger un bug dans mon convertisseur , il m'oblige à modifier quelques valeurs de vertex à la main , on ne peut pas dire que ça soit le top

Publié : jeu. 23/déc./2004 18:04
par comtois
Voila l'exemple complet
http://perso.wanadoo.fr/comtois/sources/savant2.zip
maintenant , je vais voir comment je peux améliorer mon convertisseur.
[EDIT]
Voila , c'est corrigé , du moins , pour ton fichier ça passe bien maintenant.
http://perso.wanadoo.fr/comtois/sources/makeMesh.zip
à la prochaine étape , il faudrait que je convetisse les datas en fichier mesh utilisable avec LoadMesh() , ça serait plus simple, quelqu'un connait le format des fichiers meshs ?