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
Remplace WaitWindowEvent() par WindowEvent()
Re: Sphere avec projection
Publié : lun. 24/nov./2014 15:27
par MetalOS
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.