Dreamotion3D

Généralités sur la programmation 3D
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Bon j'ai trouvé le pourquoi que ça plantait, un nom de pointeur incorrect.

Sauf que depuis la mise à jour à la Beta 3 j'ai le message d'erreur suivant :
Le point d'entrée de procédure _DM_TextColor@20 est introuvable dans la bibliothèque de liason dynamique Dreamotion3D.dll.
Donc dans l'exemple Alpha, je dois commenter la ligne :

Code : Tout sélectionner

DM_TextColor(*font, 255,0,0,255)
Le résultat un texte en blanc.

A+
Guimauve
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Merci pour ton rapport de Bug. ;)

Ton erreur est etrange. Je viens de faire une ré-install sur mes deux machines
de test (à partir du DownLoad du site), et cela ne semble pas poser de soucis.

L'erreur se produit-elle sur les autres exemples, qui utilise la meme instruction, as-tu fait l'install en auto, ou manuellement ?
(cela donne l'impression que tu tourne avec l'ancienne DLL)
Force et sagesse...
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Oublie le problème signalé plus haut. J'ai supprimé toute les dll relié à Dreamotion (Répertoire System32, Compliers), j'ai ré-installé tout le bazarre avec le programme fourni et ça fonctionne correctement.

Sauf que je n'aime pas du tout installer des fichiers dans le répertoire System32. Mais ça c'est moi !!

Un autre problème, j'ai un fichier *.3ds qui ne s'affiche pas à l'écran. C'est peut-être un problème de version de fichier. Le fichier en question à été créer avec Ultimate Unwrap 3D. Le même model au format *.x créer avec Ultimate Unwrap 3D marche très bien.

Je t'envoie le fichier en question, le *.3ds et la texture ?

A+
Guimauve
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Oui si c'est possible... cela me permettra de mieux voir l'origine du problème...
Force et sagesse...
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

OK, j'ai donc essayé avec les media que tu m'a envoyé, et cela fonctionne chez moi
parfaitement avec le mesh au format 3DS. Je vais aller tester sur une autre machines,
voir ce que cela donne...

Voici le petit code tout simple que j'ai employé:

Code : Tout sélectionner

; Fichiers Include 
IncludePath "Include\"  :  IncludeFile "dreamotion3d.pbi"

  ;  Initialisation des différents modules
  If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 
    End
  EndIf

  ; Initialise la fenêtre graphique
  DM_Graphics3D(800, 600, 32,  0, 1) 
  SetCurrentDirectory("media/")

  
  *mesh = DM_LoadMesh("Triedre.3ds")

  *camera   = DM_CreateCamera()
  DM_MoveEntity(*camera, 0,0,-70.0)
  DM_CameraClsColor(*camera, 125, 125, 125)


  Repeat
  	ExamineKeyboard()
  	;ExamineMouse() 
    If KeyboardReleased(#PB_Key_Escape)
  	  Quit=1
    EndIf

  	DM_BeginScene()
    	DM_RenderWorld()
   	DM_EndScene()
  	
Until Quit=1
DM_ClearGraphics()
End
[EDIT] cela fonctionne sur mes deux autres machines... étrange
Force et sagesse...
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Et bien chez moi, l'exemple s'affiche mais le trièdre est blanc. J'ai le même problème avec le Triedre.x que le Triedre.3ds. De plus, pour arrèter le programme, je dois passer par le Gestionnaire des tâches de Windows.

À noter que la version *.x du trièdre fonctionne correctement dans l'exemple 1-Alpha.pb. C'est vraiment :!: :?: :!:

C'est peut-être ma machine le problème. Faudrait que je ré-installe tout le bazarre (WinXP + Tout les programmes). L'ennui c'est le téléchargement du SP 2 va prendre entre 10 et 15 heures. Sans compter le téléchargement pour les autres programmes. (Entre 75 et 100 heures de téléchargement au total.)

Bref, s'il n'y pas de problème de ton coté et que personne d'autre n'a de problème, ne perd pas ton temps à trouver pourquoi.

A+
Guimauve
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Avant d'en passer par la (tout ré-installer) essayons d'approfondir.
Tous les exemples du Pack tournent-ils correctement ?
Le phénomène que tu rencontre, l'observes-tu avec d'autre mesh que tu aurais définit ?


Ce qui me parait étrange, c'est que tu sois obligé d'en passer par un arret
chaud comme cela du programme, c'est surtout cet aspect la qui m'inquiète,
surtout si tu as utilisé uniquement le petit code que je donne plus haut...
Force et sagesse...
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

J'ai fait un test avec tout les exemples du Pack voiçi les résultats :
1-alpha.pb - OK
2-HLSL.PB - OK
3-LODMesh.pb - OK
4-MD2.pb - OK
5-SimpleMesh.pb - OK
6a-Bump.pb - OK
6b-Bump.pb - OK
7-TextureCoords.pb - OK
8-Terrain.pb - OK
9-Particules.pb - OK
10-Direct3D.pb - OK
11-3D2D.pb - OK
12-CreateMesh.pb - OK
13-Pivot.pb - OK
14-Gadget.pb - OK
15-Flag.pb - OK
16-Reflect.pb - OK !?! Le nom du fichier suggère un effet de reflet mais ça ne semble pas fonctionner
17-AnimX.pb - Invalid memory access DM_LoadAnimMesh() (Ligne 54)
18-Collide.pb - OK
19-Poursuite.pb - OK
20-Water.pb - OK
21-PichinkMesh.pb - OK
22-TerrainSplat.pb - Shaderv2.00 is not supported
23-Glow.pb - Le model est Blanc
24-Horloge.pb - OK
25-BumpAirPlane.pb - OK
26-ManualRender.pb - OK
27-FourView.pb - OK
28-ShadowMapping.pb - Invalid memory access DM_ShadowColor() (Ligne 71)
29-ShadowVolume.pb - OK
30-PointLight.pb - OK
31-HightDensityTerrain.pb - Shaderv2.00 is not supported
J'ai fait un test avec un autre fichier *.3ds avec l'exemple 1-alpha.pb et il ne s'affiche pas lui non plus. Parcontre avec l'exemple 26 j'ai pu le voir à l'écran. Cependant, le UV mapping semble être tourné de 90°.

Le code de couleur du trièdre dans Rhino3D et dans Ultimate Unwrap est :

Axe X - Rouge
Axe Y - Vert
Axe Z - Bleu
Origine - Jaune

Dans l'exemple 26 avec le triedre.3ds le code de couleur devient :

Axe X - Vert
Axe Y - Bleu
Axe Z - Jaune
Origine - Rouge

Alors qu'avec le triedre.x le code de couleur est correct. Du moins il est défini comme il deverait l'être.

Et avec le petit exemple plus haut et avec le fichier tiger.x, pas de texture et dès que le curseur est sur la fenètre c'est le sablier. Le programme ne répond plus ...

A+
Guimauve
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Dans tout les samples qui ne tourne pas, cela semble du au fait que ta carte
video ne supporte pas bien les Shader (V2.00 notament), donc dans les
exemple genre Reflect, shadowsmapping, TerrainSplat, etc... c'ets normal
que cela ne fonctionne pas.
Pour le chargement des mesh par contre c'est plus étrange.

Au fait ta carte video c'est quoi ? (type + ram)
Force et sagesse...
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Oh c'est une vieille carte graphique qui commence à dater. La config de la machine :

Processeur - AMD Athlon 2200XP+
Mémoire vive - 1Go de ram
Carte graphique - Asus V9180 MX440 AGP8X 64Mo (GeForce4)
OS - WinXP SP2
DirectX 9.0c

A+
Guimauve
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

où sont passées les commandes :

DM_SetTerrain()
DM_BrushAddTextureStage()
DM_BrushRestoreTextureStage()
DM_HeightMap()

DM_QuadBrush(0)

:?:
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Mon editeur de map est completement a refaire mdr
(ça fait un petit temps que j'ai plus bossé dessus car trop occupé, et avec toute les versions sortie depuis...)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

wolfjeremy a écrit :Mon editeur de map est completement a refaire mdr
(ça fait un petit temps que j'ai plus bossé dessus car trop occupé, et avec toute les versions sortie depuis...)
Pas de panique, elles sont toujours dans la dll je pense, c'est juste le wrapper qui est à mettre à jour :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

:oops:

Je viens de lire ça

Code : Tout sélectionner

  old syntax			new syntax

//DM_Texture() 			DM_GetTexturePtr()
//DM_RotateTextures()  		DM_RotateTexture()
//DM_FormatTexture()  		DM_TextureFormat()
//DM_UsageTexture()		DM_TextureUsage()
//DM_PoolTexture() 		DM_TexturePool() 
//DM_BrushFreeStates()  	DM_BrushFlushStates()	
//DM_EntityBrush.l() 		DM_GetEntityBrush.l()
//DM_GetColorBrush()  		DM_GetBrushColor()
//DM_ChanelTexCoord() 		DM_CopyTexCoord()
//DM_MainViewPort() 		DM_CameraActive()  
//DM_CameraLookAt() 		DM_CameraPoint()
//DM_SpeedAnimate()		DM_AnimateSpeed()
//DM_AnimateIndex.l() 		DM_GetAnimateIndex.l()
//DM_IndexAnimate()		DM_AnimateIndex() 
//DM_EntityTypeMesh()		DM_EntityClass() 
//DM_Octree() 			DM_CreateOctree() 
//DM_SetColorText()  		DM_TextColor()
//DM_EntityParticle.l()  	DM_CreateParticle.l() 
//DM_ParticleInter() 		DM_ParticleInterval()
//DM_TerrainHeight  		DM_GetTerrainHeight
//DM_QuadBrush.l()  		DM_GetQuadBrush.l()
//DM_BrushQuad()   		DM_PaintQuad()
//DM_TextureTerrain()		DM_TerrainTexture()
//DM_MultiQuadBrush()		DM_PaintQuads()
//DM_HeightTerrain()	 	DM_SetHeightTerrain()
//DM_HeightMap()		DM_GetHeightmapPtr.l() 
//DM_UpdateQuadGeometrie	DM_UpdateQuad(quad.l) 
//DM_SetWater()			DM_WaterParams()
//DM_SetTerrain()  		DM_TerrainParam()
//DM_PivotImage()		DM_ImagePivot()
//DM_BrushImage()		DM_PaintImage()
//DM_LoadSprite()		DM_LoadSprite3D()
//DM_EntityDraw() 		DM_RenderEntity()
//DM_LoadMaterialScript()  	DM_LoadBrushScript()
//DM_CameraOctreeAngleProj()  	DM_OctreeProjAngle()
//DM_SetWidth2D()  		DM_SetWidth() 
//DM_SetColor2D() 		DM_SetColor()
//DM_SetRectSprite2D()		DM_SpriteRect2D()
//DM_HeightSprite2D()		DM_SpriteHeight2D()
//DM_WidthSprite2D()		DM_SpriteWidth2D()
//DM_Sprite2DBrush()		DM_GetSpriteBrush()
//DM_BrushSprite2D()		DM_PaintSprite2D()
Par contre j'ai mal regardé ou je ne trouve pas ces deux là ?

Code : Tout sélectionner

 DM_BrushAddTextureStage()
 DM_BrushRestoreTextureStage()
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Seyhajin
Messages : 17
Inscription : jeu. 03/mars/2005 13:24

Message par Seyhajin »

Par contre j'ai mal regardé ou je ne trouve pas ces deux là ?

Code : Tout sélectionner

DM_BrushAddTextureStage()
DM_BrushRestoreTextureStage()
Ses fonctions ont été modifier en une seule pour les Brush
Maintenant il faut definir le type d'etat (Ajouter, Modifer et Restaurer) grace aux constantes :

Code : Tout sélectionner

STATE_ADD
STATE_MODIFY
STATE_RESTORE
Dans la fonction : DM_BrushTextureStage(STATE_ADD, ....)
Son prototype est (desolé c'est du BlitzMAX) : DM_BrushTextureStage(state_type:Int , brush:CBrush , stage_index:Int , stage_type:Int , stage_value:Int , modify_index:Int = 0), le dernier parametre sert seulement si on veut un STATE_MODIFY.
Répondre