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 :
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
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à ?
Publié : mer. 14/mars/2007 0:03
par Seyhajin
Par contre j'ai mal regardé ou je ne trouve pas ces deux là ?
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 :
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.