Mesh gratuit pour ogre

Généralités sur la programmation 3D
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Mesh gratuit pour ogre

Message par comtois »

SPH a écrit :Quel est le plus petit code pour afficher un mesh ?
Version non 'instanciable', le mesh doit être attaché à un node

Code : Tout sélectionner

InitEngine3D()
InitSprite()
InitKeyboard()
OpenScreen(800, 600, 32, "3D")

#Camera = 0
#Mesh = 0
#Node = 0

CreateMesh(#Mesh)
  MeshVertexPosition(-5, 0, -5)
  MeshVertexPosition( 0, 0,  5)
  MeshVertexPosition( 5, 0, -5)
FinishMesh(#False)

CreateNode(#Node)
AttachNodeObject(#node, MeshID(#mesh))

CreateCamera(#Camera, 0, 0, 100, 100)
MoveCamera(#Camera, 20, 100, 20, #PB_Absolute)
CameraLookAt(#Camera, NodeX(#node), NodeY(#node),NodeZ(#node))

Repeat
  ExamineKeyboard()
  RenderWorld()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Version instanciable, il permet de créer autant d'entités que l'on souhaite.

Code : Tout sélectionner

InitEngine3D()
InitSprite()
InitKeyboard()
OpenScreen(800, 600, 32, "3D")

#Camera = 0
#Mesh = 0
#Entity = 0

CreateMesh(#Mesh)
  MeshVertexPosition(-5, 0, -5)
  MeshVertexPosition( 0, 0,  5)
  MeshVertexPosition( 5, 0, -5)
FinishMesh(#True)

CreateEntity(#Entity, MeshID(#mesh), #PB_Material_None)

CreateCamera(#Camera, 0, 0, 100, 100)
MoveCamera(#Camera, 20, 100, 20, #PB_Absolute)
CameraLookAt(#Camera, EntityX(#Entity), EntityY(#Entity),EntityZ(#Entity))

Repeat
  ExamineKeyboard()
  RenderWorld()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Mesh gratuit pour ogre

Message par SPH »

Merci pour les 2 exemples.

Une entity, est ce comme une occurence dans flash ? (une sorte de copie d'objet quoi)
Que veux dire "instancier" ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Re: Mesh gratuit pour ogre

Message par Frenchy Pilou »

Dans les programmes 3D une instanciation est une copie d'objet avec la particularité qu'ensuite n'importe quelle modification de n'importe lequel de ces objets copiés (y compris l'original) se répercutera sur tous les autres! :)
Est beau ce qui plaît sans concept :)
Speedy Galerie
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Mesh gratuit pour ogre

Message par SPH »

ENTITE = MESH + MATERIEL
ok

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Mesh gratuit pour ogre

Message par Backup »

SPH a écrit : Une entity, est ce comme une occurence dans flash ? (une sorte de copie d'objet quoi)
Que veux dire "instancier" ?

pour faire un paralelle avec la librairie Sprite

un mesh serai comme une image ...
et l'entity serai comme un Sprite

tu as besoin d'une image pour donner corp a un Sprite , qui est a la base une coque vide !!

la c'est pareil , une entity a besoin d'un mesh pour exister ... les concepts se ressembles ... :)

la meme image peut servir pour plusieurs Sprite
le meme Mesh peut servir pour plusieurs Entity ;)
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Mesh gratuit pour ogre

Message par SPH »

Ok :P

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre