Page 1 sur 1

[Résolu] MeshPoseCount(); nombres de paramètres incorrects

Publié : jeu. 08/août/2013 22:18
par falsam
Le titre est suffisamment parlant. Petit code pour compléter ma demande. Me référant à l'aide, je ne vois pas quel ou quels sont les paramètres manquants.

Code : Tout sélectionner

EnableExplicit

Enumeration
  #MainForm
EndEnumeration

Define.l Event

Global Camera.i, Mesh.i, Entity.i

InitEngine3D()
InitKeyboard()
InitSprite()
InitMouse()

Add3DArchive(#PB_Compiler_Home+"Examples\3D\Data\models", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home+"Examples\3D\Data\scripts", #PB_3DArchive_FileSystem)
Parse3DScripts()

OpenWindow(#Mainform,0,0,1024,768, "M", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Mainform),0,0,1024,768,0, 0, 0)

KeyboardMode(#PB_Keyboard_International)

;
; Une camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)

;
; Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)


;
; Mesh
Mesh = LoadMesh(#PB_Any, #PB_Compiler_Home+"Examples\3D\Data\Models\robot.mesh")
Entity = CreateEntity(#PB_Any, MeshID(Mesh), #PB_Material_None)
StartEntityAnimation(Entity, "Walk")

;MeshPoseCount(); nombres de paramètres incorrect
If Mesh
  Debug MeshPoseCount(Mesh)
EndIf

While #True
  Event = WindowEvent()
    
  If ExamineKeyboard()  
  
    ; Touche Escape pour fermer l'application
    If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
      Break
    EndIf  
    
  EndIf
  
  CameraLookAt(Camera, 0, 0, 0)
  MoveCamera(Camera, 0, 50, 300, #PB_Absolute)  
  
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld()
  FlipBuffers()
Wend

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : jeu. 08/août/2013 22:48
par SPH

Code : Tout sélectionner

EnableExplicit

Enumeration
  #MainForm
EndEnumeration

Define.l Event

Global Camera.i, Mesh.i, Entity.i

InitEngine3D()
InitKeyboard()
InitSprite()
InitMouse()

Add3DArchive(#PB_Compiler_Home+"Examples\3D\Data\models", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home+"Examples\3D\Data\scripts", #PB_3DArchive_FileSystem)
Parse3DScripts()

OpenWindow(#Mainform,0,0,1024,768, "M", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Mainform),0,0,1024,768,0, 0, 0)

KeyboardMode(#PB_Keyboard_International)

;
; Une camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)

;
; Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)


;
; Mesh
Mesh = LoadMesh(#PB_Any, #PB_Compiler_Home+"Examples\3D\Data\Models\robot.mesh")
Entity = CreateEntity(#PB_Any, MeshID(Mesh), #PB_Material_None)
StartEntityAnimation(Entity, "Walk")

;MeshPoseCount(); nombres de paramètres incorrect
If Mesh
  Debug Mesh
EndIf

While #True
  Event = WindowEvent()
    
  If ExamineKeyboard()  
  
    ; Touche Escape pour fermer l'application
    If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
      Break
    EndIf  
    
  EndIf
  
  CameraLookAt(Camera, 0, 0, 0)
  MoveCamera(Camera, 0, 50, 300, #PB_Absolute)  
  
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld()
  FlipBuffers()
Wend

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : jeu. 08/août/2013 22:55
par falsam
Bonsoir SPH. MeshPoseCount, renvoie le nombre de poses dans un mesh. Ton débug n'apporte pas de réponse à mon souci de syntaxe de cette fonction. :)

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : ven. 09/août/2013 6:36
par comtois
C'est un bug.

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : ven. 09/août/2013 11:48
par falsam
comtois a écrit :C'est un bug.
ha mince dommage !!!

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mar. 20/août/2013 14:14
par Fred
C'est corrigé avec la beta 12

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mar. 20/août/2013 14:15
par falsam
Fred a écrit :C'est corrigé avec la beta 12
ça c'est génial. je download cette version. merci :)

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mar. 20/août/2013 14:44
par falsam
Aprés test il n'y a plus de message d'erreur. Par contre le résultat est invariablement égale à 0 quelques soit le mesh.

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mar. 20/août/2013 15:57
par Fred
Il a des poses ton mesh ? Regarde FacialAnimation.pb, et mets

Code : Tout sélectionner

  ; pre-load the mesh so that we can tweak it With a manual animation
  LoadMesh(#Mesh, "facial.mesh")
  Debug MeshPoseCount(#Mesh)
Ca indique 22 ici.

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mar. 20/août/2013 18:24
par falsam
Effectivement je trouve bien 22 pour facial.mesh.

Une question me brûle les lèvres :mrgreen: Animation et poses c'est la même chose ?

Si oui, alors si tu prends le fichier ninja.mesh le résultat sera égale à 0.

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mar. 20/août/2013 19:20
par comtois
pose et skeleton c'est pas pareil.

Regarde l'exemple VertexAnimation.pb, c'est notre ami Blendman qui a fait le mesh sous blender, il y a une pose dans le mesh et pas de skeleton.

Il pourra t'en dire plus, je n'y connais rien aux éditeurs 3D, je n'ai pas la patience avec ces trucs :)

Et le mesh facial contient à la fois un skeleton et des poses , tu peux choisir le type d'animation, c'est d'ailleurs ce que montre l'exemple.

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : mer. 21/août/2013 11:42
par comtois
Comme indiqué dans la doc, c'est les poses sont surtout utilisés pour les animations faciales.

http://www.ogre3d.org/docs/manual/manual_80.html
A common use for this is facial animation,

Re: MeshPoseCount(); nombres de paramètres incorrects

Publié : jeu. 22/août/2013 22:53
par falsam
comtois a écrit :Regarde l'exemple VertexAnimation.pb, c'est notre ami Blendman qui a fait le mesh sous blender, il y a une pose dans le mesh et pas de skeleton.
Ok j'ai vu. J'ai bêtement pensé que animation (skeleton) et pose c'était la même chose.