Crazy Sheep

Généralités sur la programmation 3D
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Crazy Sheep

Message par MetalOS »

Le problème avec Cheetah3D c'est qu'il n'existe pas de script pour convertir en *.mesh. Du coup j'importe mes créations dans blender pour les convertirent. Du moins j'essaye car pour le moment je n'y arrive pas.
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Crazy Sheep

Message par Cool Dji »

Salut MetalOS,

C'est vraiment joli :D , bravo

Pour convertir, il ya Deled Engine http://www.delgine.com/ qui convertit bien en .mesh ou .xml (je le trouve bien plus pratique que le convertisseur de Blender).
Deled Engine n'a pas de fonctions très poussées et le dev à l'air d'être stoppé mais il a beaucoup de formats d'imports disponible
Only PureBasic makes it possible
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Cool merci de l'info je vais tester ça.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Crazy Sheep

Message par microdevweb »

Très joli , perso j'utilise C4D pour la mdélisation
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

C4D et déjà un peut plus complexe.

Grace au logiciel de Cool Dji j'ai réussi à convertir ma scène au format mesh, mais il m'a aussi généré un fichier en *.materiel et un fichier color.bmp. Je suppose que le fichier *.material sont les textures de la scène mais comment les charger dans PB ?
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Crazy Sheep

Message par Cool Dji »

ça se charge automatiquement en ne spécifiant pas de matériel dans l'entity que tu crée.

CreateEntity :
"Si la commande Parse3DScripts() a été utilisée, la constante #PB_Material_None peut être utilisée afin de prendre en compte les matières du script '.material' associé au mesh. "

C'est avec Deled qu'ont été réalisés les décors des exemples 3D de PB...
Only PureBasic makes it possible
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Ok merci Cool Dji
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Je vient de faire un test rapide avec le code d'exemple SkyBox ou je charge mon fichier *.mesh

Code : Tout sélectionner

;
; ------------------------------------------------------------
;
;   PureBasic - SkyBox
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;
; Thanks to Steve 'Sinbad' Streeting for the nice SkyBox !
;

; Use [F2]/[F3] to change SkyBox's texture 
; Use [F4] to disable SkyBox

#CameraSpeed = 1

Enumeration
  #MainWindow 
  #Editor
EndEnumeration

IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY, RatioX, RatioY

If InitEngine3D()
  
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/desert.zip", #PB_3DArchive_Zip)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/skybox.zip", #PB_3DArchive_Zip)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/GUI", #PB_3DArchive_FileSystem)
  Parse3DScripts()
  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
    
    ;-Entity
    CreateEntity(0, LoadMesh(0, "Planete.mesh"), #PB_Material_None)
    
    ;-Camera 
    CreateCamera(0,0,0,100,100)
    MoveCamera(0,0,0,4, #PB_Absolute)
    CameraBackColor(0, RGB(19, 34, 49))
    
    ;-GUI
    RatioX = CameraViewWidth(0) / 1920
    RatioY = CameraViewHeight(0) / 1080
    
    OpenWindow3D(#MainWindow, 10, 10, 570 * RatioX, 180 * RatioY, "SkyBox")
    EditorGadget3D(#Editor, 10 * RatioX, 20 * RatioY, 530 * RatioX, 90 * RatioY, #PB_Editor3D_ReadOnly)
    SetGadgetText3D(#Editor, "[F2]/[F3] = Change SkyBox " + Chr(10) + "[F4] = Disable SkyBox")
    
    ShowGUI(155, 0)
    
    Repeat
      Screen3DEvents()
      
      If ExamineMouse()
        MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
        MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
      EndIf
      
      If ExamineKeyboard()
        
        If KeyboardReleased(#PB_Key_F2)
          SkyBox("stevecube.jpg")
        ElseIf KeyboardReleased(#PB_Key_F3) 
          SkyBox("desert07.jpg")
        ElseIf KeyboardReleased(#PB_Key_F4)
          SkyBox("")
        EndIf
        
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed 
        Else
          KeyX = 0
        EndIf
                  
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed 
        Else
          KeyY = 0
        EndIf

      EndIf
           
      RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY)
      
      RenderWorld()

      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
    
Else
  MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf
  
End
et voici ce que ca me donne, les textures ne sont pas chargées.

Image
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Crazy Sheep

Message par falsam »

Meme le ciel ne s'affiche pas !!

Peut tu essayer ce code ?

Code : Tout sélectionner

Enumeration
  #Mainform
EndEnumeration

Global Event

Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered

Procedure Open_MainForm(Width=#PB_Ignore, Height=#PB_Ignore)
  ExamineDesktops()
  If Width = #PB_Ignore : Width = DesktopWidth(0) : EndIf
  If Height = #PB_Ignore : Height = DesktopHeight(0) : EndIf
  OpenWindow(#Mainform,0,0,Width, Height, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  OpenWindowedScreen(WindowID(#Mainform),0,0,Width,Height,0, 0, 0)
  
  KeyboardMode(#PB_Keyboard_International)
EndProcedure


Procedure Load_Scene()
  Add3DArchive(#PB_Compiler_Home + "Examples\3D\Data\Packs\desert.zip", #PB_3DArchive_Zip) 
  
  SkyBox("desert07.jpg")
  
  ;Lumiere et ombre
  AmbientColor(RGB(127, 127, 127))
  CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
  WorldShadows(#PB_Shadow_Additive)

  ; Une camera 
  Camera = CreateCamera(#PB_Any,0,0,100,100)
  CameraBackColor(Camera, RGB(145, 182, 201))

  MoveCamera(Camera, 2, 5, 15, #PB_Absolute)  
  CameraLookAt(Camera, 0,0,0)
EndProcedure


Procedure Start()
  If Not (InitEngine3D()=0 Or InitKeyboard()=0 Or InitSprite()=0 Or InitMouse()=0)
    Open_MainForm()
    Load_Scene()
  EndIf
EndProcedure

start()

Repeat
  Repeat
    Event  = WindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        End
        
    EndSelect
  Until Event = 0
  
  If ExamineKeyboard()
    
    If KeyboardPushed (#PB_Key_Escape)
      Break
    EndIf
  EndIf
  
  ; Affiche le rendu de la sc?ne
  ClearScreen(RGB(0, 0, 0))
  RenderWorld(80)
  FlipBuffers()    
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Le code fonction falsam. J'ai trouvé le problème il semblerais que le programme de CoolDji n'exporte pas les textures de ma scène. je vais tenter avec autre chose.
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Crazy Sheep

Message par falsam »

MetalOS a écrit :Le code fonction falsam. J'ai trouvé le problème il semblerais que le programme de CoolDji n'exporte pas les textures de ma scène. je vais tenter avec autre chose.
J'utilise depuis pas mal de temps Deled 2.45 et le plugin d'exportation vers Ogre 3D fonctionne bien.

Peut être que tu as mal paramétrer ce plugin.

j'ai testé un exemple et voila comment est paramétré ce plugin d'export pour ogre.

Image
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Oui il est paramétré de la même façon mais le résultat et le même. Peut être une option oublier dans mon logiciel de modélisation.
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Crazy Sheep

Message par falsam »

je pense que tu exportes chacun de tes entités. Tu as au moins le mesh. Dans ce cas tu peux créer le matériel correspondant à chacun de tes entités.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Je vais faire quelques test.
Avatar de l’utilisateur
MetalOS
Messages : 1508
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Crazy Sheep

Message par MetalOS »

Ok j'ai refais un nouveau test en ajoutant cette fois un CreateLight et voici le résultat.

Image
Répondre