Page 1 sur 1

Sphere avec projection

Publié : dim. 16/nov./2014 6:31
par MetalOS
Salut les amis,

J'aurai besoin de vos avis sur la possibilité de créer la planète Terre en 3D avec possibilité de projeter des points avec coordonnées géographique.

Voici la carte que je compte utiliser comme texture sur une sphère.

http://www.shadedrelief.com/natural3/pa ... tures.html

Pensez vous que c'est réalisable et si oui faut il créer l'objet en 3D d'une certaine manière pour utiliser la projection de la carte ?

Merci d'avance pour votre aide.

Re: Sphere avec projection

Publié : dim. 16/nov./2014 9:20
par kernadec
bonjour MetalOS
il y a un très bon post sur le forum anglais qui traite des projections sans OpenGL
Mickael Vogel à fait un truc top
Mais voir aussi le code de BasicallyPure qui me semble intéressant.
http://www.purebasic.fr/english/viewtop ... 3&start=25

Cordialement

Re: Sphere avec projection

Publié : dim. 16/nov./2014 16:18
par MetalOS
Je vais regarder ça merci kernadec.

Re: Sphere avec projection

Publié : dim. 16/nov./2014 19:58
par MetalOS
Je ne comprend pas la texture sur ma terre ne s'applique pas. Voici une archive avec un code de test le mesh et sa texture.

http://infoprojectsoftware.free.fr/Earth.zip

Si quelqu'un peut tester et me dire si il à le même problème.

Re: Sphere avec projection

Publié : dim. 16/nov./2014 20:06
par Cool Dji
Hello MetalOs,

Idemtout blanc, pas certain que l'UV du Mesh soit ok

Re: Sphere avec projection

Publié : dim. 16/nov./2014 20:23
par MetalOS
J'ai essayé de faire le mesh sur blender mais je ne connais pas ce logiciel.

Re: Sphere avec projection

Publié : dim. 16/nov./2014 20:37
par Cool Dji
Ok, je ne suis pas un pro dans Blender mais il me semble que si tu ne génère pas d'UV de ton Mesh, la material ne sera pas placé correctement...
Il y a quelques Youtube sur le sujet...

https://www.youtube.com/watch?v=MfQCmQHcVY8

Sinon, pour la transformation en mesh, tu réussi à générer l'export depuis Blender ?
Avec la 2.71, je n'ai pas réussi à refaire marcher l'export Ogre => j'exporte donc en .obj depuis blender et convertit avec Delengine en .mesh :?

Re: Sphere avec projection

Publié : dim. 16/nov./2014 21:16
par MetalOS
J'utilise la version 2.65 pour pouvoir exporter en *.mesh.xml puis ensuite j'utilise un outils de chez Ogre pour convertir le xml en *.mesh.

Je vais regarder la video. Merci Cool Dji.

Re: Sphere avec projection

Publié : dim. 16/nov./2014 22:09
par graph100
Magnifique le site de ressource pour des cartes de la planète !

Re: Sphere avec projection

Publié : dim. 16/nov./2014 22:41
par MetalOS
graph100 a écrit :Magnifique le site de ressource pour des cartes de la planète !
Je suis tombé dessus par hasard. Impossible d'appliquer la texture à l'UV Sphere sous Blender malgré le tuto vidéo. C'est une vrai usine à gaz se truc.

Re: Sphere avec projection

Publié : lun. 24/nov./2014 14:02
par MetalOS
Toujours pour ce projet je cherche à tester l'exemple SkyDome de PB dans une fenêtre avec OpenWindowedScreen() mais je rencontre un problème. Il faut que je bouge la souris ou que j'actionne les touches du clavier pour faire bouger le monde 3D. Voici mon exemple.

Code : Tout sélectionner

;By MetalOS

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/Scripts", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/GUI", #PB_3DArchive_FileSystem)
Parse3DScripts()

InitSprite()
InitKeyboard()

#CameraSpeed = 1

;- Global Variables and Constants
Global BubbleTipStyle.l:BubbleTipStyle=0

;- Window Constants
Enumeration 1
  #Window_Form1
EndEnumeration
#WindowIndex=#PB_Compiler_EnumerationValue

Define.f KeyX, KeyY

;- Gadget Constants
Enumeration 1
  ;Window_Form1
  

EndEnumeration
#GadgetIndex=#PB_Compiler_EnumerationValue


Procedure.l Window_Form1()
  If OpenWindow(#Window_Form1,124,63,710,565,"Test 3D.",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_WindowCentered|#PB_Window_Invisible)
    
    If OpenWindowedScreen(WindowID(#Window_Form1), 5, 5, 700, 500, 0,0,0)
      
    
    AmbientColor(RGB(255, 255, 255))
    
    CreateMaterial(0, LoadTexture(0, "r2skin.jpg"))
    CreateEntity  (0, LoadMesh(0, "robot.mesh"), MaterialID(0), 0, 0, 0)
    RotateEntity(0, 30, 180, 0)
    SkyDome("clouds.jpg", 30)
    
    ;- Camera
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 0, 0, 400, #PB_Absolute)
    CameraBackColor(0, RGB(19, 34, 49))
    
    EndIf

    HideWindow(#Window_Form1,0)
    ProcedureReturn WindowID(#Window_Form1)
  EndIf
EndProcedure


;- Main Loop
If Window_Form1()

  quitForm1=0
  Repeat
    EventID  =WaitWindowEvent()
    MenuID   =EventMenu()
    GadgetID =EventGadget()
    WindowID =EventWindow()
    
    If ExamineKeyboard()
        
        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

    Select EventID
      Case #PB_Event_CloseWindow
        If WindowID=#Window_Form1
          quitForm1=1
        EndIf


      Case #PB_Event_Gadget
        Select GadgetID
          

        EndSelect

    EndSelect
    
    MoveCamera  (0, KeyX, 0, KeyY)
    
    RenderWorld()
    FlipBuffers()
    
  Until quitForm1
  CloseWindow(#Window_Form1)
EndIf
End

Re: Sphere avec projection

Publié : lun. 24/nov./2014 15:22
par falsam
Dans WaitWindowEvent() il y a ...... wait :mrgreen:
Remplace WaitWindowEvent() par WindowEvent()

Re: Sphere avec projection

Publié : lun. 24/nov./2014 15:27
par MetalOS
falsam a écrit :Dans WaitWindowEvent() il y a ...... wait :mrgreen:
Remplace WaitWindowEvent() par WindowEvent()
:oops: :mrgreen: :mrgreen: :mrgreen: Merci

Re: Sphere avec projection

Publié : lun. 24/nov./2014 15:38
par falsam
Je pense que ta boucle événementielle n'est pas stable car elle ne vide pas systématiquement la pile des événements windows ce qui pourrait provoquer un crash de ton application (Il est vrai qu'avec ton code actuel la probabilité est faible)

Code : Tout sélectionner

If Window_Form1()
  Repeat
    ;Evenement Windows
    Repeat
      Event    = WindowEvent()
    
      MenuID   = EventMenu()
      GadgetID = EventGadget()
      WindowID = EventWindow()
    
      Select Event  
        Case #PB_Event_CloseWindow
          End
          
      EndSelect
    Until Event = 0
  
    ;Evenements 3D
    If ExamineKeyboard()
      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  
    
      If KeyboardPushed (#PB_Key_Escape)
        Break
      EndIf
    EndIf
    
    MoveCamera  (0, KeyX, 0, KeyY)
  
    ; Affiche le rendu de la scéne
    RenderWorld(80)
    FlipBuffers()  
  
  ForEver
EndIf 
Tu noteras l'apparition de 2 repeat dont un pour les événements windows.

Re: Sphere avec projection

Publié : lun. 24/nov./2014 16:50
par MetalOS
Ca me permet aussi de m'y retrouver plus facilement entre la gestion de la 3D et la gestion des Gadget de la Window. Merci falsam.