Page 1 sur 3

Section Bogues Dreamotion3D

Publié : jeu. 09/nov./2006 21:44
par comtois
Bon pour être sûr que tmyke ne les oublies pas, mettez tous vos bogues dans ce post :)

Et puis c'est bon de connaitre les bogues existants, ça évite de se prendre la tête quand on tombe dessus, on sait qu'il faut contourner le problème ou attendre une correction :P

DM_Draw_Text() : Problème d'accent

Publié : jeu. 09/nov./2006 21:45
par comtois
On ne peut pas afficher les accents avec la commande DM_DrawText()

[Résolu] Lightmap , problème Dreamotion3d ou Deled ?

Publié : jeu. 09/nov./2006 21:45
par comtois
j'ai testé avec un autre décors issu de deled , WaterWorld

ça fonctionne bien, sauf une pièce qui apparait en rouge dans l'éditeur et pas avec Dreamotion3D.(il faut calculer les lightmap pour voir la pièce rouge)

C'est l'exporter B3D de deled qui déconne , ou l'importer B3D de dreamotion3D ?

[Résolu]
En fait il faut préciser le nombre de textures avec
DM_EntityFormat(2) ; c'est l'instruction a rajouter
avant de charger le décor
*mesh = DM_LoadEntity("WaterWorld.b3d")

Publié : ven. 10/nov./2006 20:16
par tmyke
Merci pour ce genre de post qui va me permettre d'avancer et d'inventorier vos bug et
problèmes.

Pour ce qui est de la zone rouge dans WaterWorld,
Il ne s'agit pas d'un bug, mais la façon dont tu importe le modèle.
La partie rouge dont tu parles n'est généré que lors du lightmapping,
et donc si tu veux pouvoir en profiter, il faut préciser au moteur que
le modèle que tu importe aura 2 textures de profondeur. Il faut donc
ecrire:

Code : Tout sélectionner

;-load a B3D file
DM_EntityFormat(2) ; c'est l'instruction a rajouter
*mesh = DM_LoadEntity("WaterWorld.b3d")
...
Tu profite alors du ligmapping et des effets qui vont avec...

Publié : ven. 10/nov./2006 20:26
par comtois
J'ai encore beaucoup à apprendre sur Dreamotion3d, il y a tellement de choses possibles :)

Merci pour l'info. C'est quand même mieux avec l'effet des lightmaps.

DM_CameraFogColor() n'affiche pas la bonne couleur

Publié : ven. 10/nov./2006 21:24
par comtois
Je ne sais pas si c'est le même bug déjà mentionné par cpl_bator ?

j'ai
DM_CameraClsColor(*camera, 0, 0, 0)
Si je mets
DM_CameraFogColor(*camera, 255, 0, 0)
Je devrait obtenir un brouillard rouge, mais il est lilas, violet , bref je ne connais pas le nom de la couleur, mais c'est l'équivalent d'un Rgb(255,0,255).

Si je mets
DM_CameraFogColor(*camera, 0,255, 0)
là c'est ok , le brouillard est vert.

Si je mets
DM_CameraFogColor(*camera, 0, 0, 255)
Le brouillard n'est pas bleu comme on pourrait s'y attendre, il n'a pas de couleur.

DM_CameraFogDensity() n'a pas d'effet visible

Publié : ven. 10/nov./2006 21:26
par comtois
Je me suis amusé à faire varier la densité de 0 à 2000 , je n'ai pas vu de changement à l'affichage.

Il faut combiner cette fonction avec autre chose ?

NX_MoveCharacter() & NX_StrafeCharacter() ensemble

Publié : sam. 11/nov./2006 9:13
par comtois
Voila j'ai ce code, et je voudrais pouvoir avancer en biais, et ce n'est pas le cas.
pourtant je valide à la fois la commande NX_MoveCharacter(*camera, 320.0) et la commande NX_StrafeCharacter(*camera, DM_EntityPitch(*camera) + 90, 320)
Comment se fait-il qu'une seule des commandes s'éxécutent si j'appuie sur les deux touches ?

Code : Tout sélectionner

  If KeyboardPushed(#PB_Key_Up)
    NX_MoveCharacter(*camera, 320.0)
  ElseIf KeyboardPushed(#PB_Key_Down)
    NX_MoveCharacter(*camera, -320.0)
  EndIf
  
  If KeyboardPushed(#PB_Key_Right)
    NX_StrafeCharacter(*camera, DM_EntityPitch(*camera) + 90, 320)
  ElseIf KeyboardPushed(#PB_Key_Left)
    NX_StrafeCharacter(*camera, DM_EntityPitch(*camera) - 90, 320)
  EndIf

LoadMD2() ne fonctionne pas avec les textures en pcx

Publié : sam. 11/nov./2006 10:16
par comtois
J'ai récupéré des modèles MD2 pour faire des tests, et la texture ne peut pas être chargée parce qu'elle est au format pcx, si je prends une texture au format jpg, ça passe, le modèle se charge bien.

Tu as prévu de gérer le format pcx , ou je commence à convertir les textures ?

Publié : sam. 11/nov./2006 10:58
par tmyke
Pour les couleurs brouillard/camera, c'est un bug , que j'ai sur ma petites liste. ;)
Pour la density, dans la mesure ou le mode brouillard par défaut est 'Linear', il ne
sert a rien, la density ne servant qu'en mode 'exponentiel'...

Les format de textures supporté sont ceux de DX, c-à-d:
bmp - jpeg - png - dds - ppm -tga

Pour les question lié a PhysX, je regarde et je te réponds dès que possible...

Publié : sam. 11/nov./2006 11:55
par tmyke
Pour le déplacement avec les instructions

NX_MoveCharacter()
NX_StrafeCharacter()

C'est une limitation du module, en fait les deux instruction établisse un vecteur
direction, qui est pris en compte pour le déplacement. Et il n'y a pas interaction
entre les deux instruction, donc c'est la dernière executée qui établi les vecteur
dir, le panachage étant pas possible pour l'instant. Je le note dans mes Bug et je reviens
sur le principe dès que possible...

Publié : sam. 11/nov./2006 12:12
par Backup
c'est pas a proprement parlé un bug , mais c'est on jamais

l'instruction "DM_PivotEntity(*cone, 0, 0, 0)" déplace l'objet

c'est a dire que l'on defini un emplacement avec
DM_PositionEntity(*cone, posxe.f, posye.f, posze.f)

et j'utilise
DM_TurnEntity(*cone,0,90,0) ; on va faire tourner l'objet pour le metre debout

puis dans la boucle repeat
j'utilise
angle.f=0.05
DM_TurnEntity(*cone,angle,0,0) ; on va faire tourner l'objet

pour faire tourner mon cone !! comme les aiguille d'une montre

mais lorsque j'utilise auparavent
DM_PivotEntity(*cone, a, b, c)
quelque soit la a,b ou c cela deplace l'objet sur la nouvelle coordonées
alors que cela devrai deplacer son point de pivot,non ?
c'est a dire le point autour duquel le cone va tourner !!
hors, la il tourne ailleurs , mais toujours sur son centre !! :?

alors que j'aimerai qu'il tourne comme si l'on avait attaché une ficelle
sur sa base et punaisé cette ficelle a un axe :D comme les aiguilles d'une horloge quoi ...

(je tente de faire une horloge en 3D :D)

Publié : sam. 11/nov./2006 14:09
par tmyke
l'utilisaton de DM_PivotEntity() est pas toujours facile a apréhender.
D'abord les valeurs que tu fournis sont en relatif, et non en absolu.

et si tu ecrit par exemple

Code : Tout sélectionner

*cone = DM_CreateCone()
DM_PivotEntity(*cone, 0,0,-10)
...
DM_TurnEntity(*cone, 0,1,0)
tu aura une aiguille qui tournera autour de l'axe des 'Y' (vertical)

Sinon, tu peux utiliser le system parent/enfant. Tu créé un pivot virtuel (très très
utilisés sous Blitz3D) et tu asservis ton mesh dessus:

Code : Tout sélectionner

*pivot = DM_CreatePivot()
*mesh  = DM_CreateCone(8, *pivot)
DM_TranslateEntity(*mesh, 0,0,10)
...
DM_TurnEntity(*pivot, 0,1,0)
C'est surerment la methode la plus élégante et la plus 'maitrisable'
;)

Publié : sam. 11/nov./2006 15:06
par Backup
DM_PivotEntity(*cone, 0,0,-10)
c'est tout a fait ce que je cherchai :D
simplement j'avais pas compris que le chiffre "-10" signifiai l'eloignement par raport au centre de l'objet (n'oublie pas de le préciser dans ta doc :D)

Merci :D

Publié : sam. 11/nov./2006 17:46
par Backup
ben il y a bien un problème avec pivot !!

peut tu jeter un oeil sur mon horloge 3D ?

http://purebasic.forum-gratuit.com/viewtopic.php?t=5910