Page 38 sur 62

Publié : dim. 11/mars/2007 20:10
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

Publié : dim. 11/mars/2007 20:44
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)

Publié : dim. 11/mars/2007 22:23
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

Publié : dim. 11/mars/2007 22:52
par tmyke
Oui si c'est possible... cela me permettra de mieux voir l'origine du problème...

Publié : lun. 12/mars/2007 19:09
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

Publié : lun. 12/mars/2007 20:38
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

Publié : lun. 12/mars/2007 21:03
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...

Publié : mar. 13/mars/2007 4:49
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

Publié : mar. 13/mars/2007 6:10
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)

Publié : mar. 13/mars/2007 13:03
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

Publié : mar. 13/mars/2007 20:22
par comtois
où sont passées les commandes :

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

DM_QuadBrush(0)

:?:

Publié : mar. 13/mars/2007 20:23
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...)

Publié : mar. 13/mars/2007 20:27
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 :)

Publié : mar. 13/mars/2007 22:35
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()

Publié : mer. 14/mars/2007 0:03
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.