Page 1 sur 1
Bibliothèque d'objets Ogre et visionneuse
Publié : jeu. 06/nov./2008 12:59
par djes
Voici une petite bibliothèque d'objets de base pour appréhender en douceur le monde de la 3D avec Ogre et Purebasic (version 4.30b4 minimum).
Au menu :
Anneau
Capsule
Cone
Cube texturé
Cylindre texturé
Diamant
Disque texturé
Engrenages
Plan
Sphères
Téïère
Tore
J'ai aussi inclus une petite visionneuse afin de démarrer tout de suite.
L'archive :
http://djes.free.fr/purebasic/OgreMeshesLibrary.zip

Publié : jeu. 06/nov./2008 15:44
par Progi1984
Une version Linux ?
Publié : jeu. 06/nov./2008 16:55
par djes
Il n'y a que du source et des objets... Ca devrait fonctionner sous Linux, tu as essayé?
Publié : jeu. 06/nov./2008 18:31
par Necro
Sympa... et
utile pour les
débutants comme moi surtout!
Bonne continuation
Cordialement,
Necro.
Publié : jeu. 06/nov./2008 18:32
par tmyke
Sympa comme petit package, le viewer marche très bien, pas de soucis (sous windows XP).

Publié : jeu. 06/nov./2008 18:54
par Anonyme
Marche aussi sous linux , sauf , que j'ai pas de texture , et que j'ai du modifié la source , l'ajout de ressource avec un chemin absolu ne marche pas.
Code : Tout sélectionner
;
IncludeFile "Screen3DRequester.pb"
Global EXEDIR$ = GetCurrentDirectory()
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
Filter$ = " Mesh (*.mesh)|*.mesh;*.meshes|All files (*.*)|*.*"
Filter = 0
File$ = OpenFileRequester("Choose a mesh to view", GetCurrentDirectory(), Filter$, Filter)
If File$
Path$ = GetPathPart(File$)
MeshFileName$ = GetFilePart(File$)
Debug Path$
Else
MessageRequester("Information", "No file selected", 0)
End
EndIf
If Screen3DRequester()
refresh_rate.l = 60
SetRefreshRate(refresh_rate)
SetFrameRate(refresh_rate)
path$=RemoveString(path$,EXEDIR$)
Add3DArchive(Path$, #PB_3DArchive_FileSystem)
Add3DArchive("", #PB_3DArchive_FileSystem)
LoadMesh (1, MeshFileName$)
CreateEntity(1, MeshID(1), #PB_Material_None)
Parse3DScripts()
AmbientColor(RGB(255, 255, 255))
CreateLight(0, RGB(255, 255, 255))
LightLocate(0, -20000, 20000, 10000)
;--- Camera
;Little computation to convert our pixels window to the % ogre
level_min_x = 0
level_min_y = 0
level_max_x = 1024
level_max_y = 768
level_width = level_max_x - level_min_x
level_height = level_max_y - level_min_y
CreateCamera(0, (level_min_x * 100) / ScreenWidth, (level_min_y * 100) / ScreenHeight, (level_width * 100) / ScreenWidth, (level_width * 100) / ScreenWidth)
cam_x.f = 0
cam_y.f = 0
cam_z.f = 5
CameraLocate(0, cam_x, cam_y, cam_z)
Repeat
Screen3DEvents()
ClearScreen(RGB(0, 0, 0))
i.f+0.002
CameraLocate(0, (1 + Sin(i / 2)) * 5 * Sin(i * 0.4), 5 * Sin(i), (1 + Sin(i / 2)) * 5 * Cos(i * 0.4))
CameraLookAt(0, 0 , 0, 0)
RenderWorld()
Screen3DStats()
FlipBuffers(#PB_Screen_SmartSynchronization)
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
Dans l'include , pensez aussi a mettre data/ au lieu de Data/ , Sensible à la case le pingouin. Bon boulot djes.
Publié : jeu. 06/nov./2008 19:16
par djes
Ah oui, je n'ai pas vérifié la casse (windows donne de mauvaises habitudes). Peut-être que tu n'as pas de textures à cause de ça aussi, il faudrait vérifier les .material.
Merci sinon

Publié : ven. 07/nov./2008 10:50
par kelebrindae
Super, Djes! Ce petit exemple va m'être très utile!
Par contre, j'ai le même problème que Cpl.Bator (pourtant je suis sous XP): aucune texture ne s'affiche...
Dans "ogre.log", pour le mesh "cube", j'ai ceci:
10:44:46: Added resource location './cube/' of type 'FileSystem' to resource group 'General'
10:44:46: Added resource location './.' of type 'FileSystem' to resource group 'General'
10:44:46: Mesh: Loading cube.mesh.
10:44:46: WARNING: cube.mesh is an older format ([MeshSerializer_v1.30]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
10:44:46: Can't assign material cube to SubEntity of E1 because this Material does not exist. Have you forgotten to define it in a .material script?
Tu vois d'où ça peut venir?
Publié : ven. 07/nov./2008 10:55
par Anonyme
n'utilise pas mon code pour XP ou vista

Publié : ven. 07/nov./2008 11:15
par kelebrindae
@cpl.Bator:
Ah bin oui, c'est pour ça...
Je me suis laissé avoir par le fait que le premier mesh que j'ai chargé avec la version de Djes n'avait pas de material. Du coup, j'ai switché sur ta version, et là plus aucun material ne se chargeait...
Bref: pas de problème, tout marche nickel!