mon premier progamme en 3D

Généralités sur la programmation 3D
djfeeler2
Messages : 65
Inscription : lun. 02/juil./2007 20:57

mon premier progamme en 3D

Message par djfeeler2 »

Voici mon premier programme en 3D :D
Grâce a l'aide de comtois j'ai réussi a faire un un
carré oui ! bon juste d'une face mais j'ai compris le fonctionnement ! j'ai repris le tuto de game creator qui était un triangle et j'en ai fais un carré !

voici le code

Code : Tout sélectionner

;premier programme en 3D
;essai création d'un carré
; le 29/11/2007

Enumeration
  ;mesh
  #mesh

  ;texture
  #texture
  
  ;matiere
  #Matiere
  
  ;entité
  #entity
  
  ;camera
  #Camera
EndEnumeration



If InitEngine3D() = 0 
  MessageRequester("Erreur","Impossible de lancer la 3D")
EndIf

If InitSprite() = 0
  MessageRequester("Erreur","Impossible de lancer les sprites")
EndIf

If InitKeyboard() = 0
  MessageRequester("Erreur","Impossible d'initialiser le clavier")
EndIf

If OpenScreen(800,600,32,"Mon premier programme 3D") = 1
  
;création d'un mesh
CreateMesh(#mesh,100)
  
;définition des sommets
SetMeshData(#mesh,#PB_Mesh_Vertex | #PB_Mesh_Color,?SommetsTriangles,4)
  
;definition des triangles
SetMeshData(#mesh,#PB_Mesh_Face, ?IndexTriangles,2)
  
;creation d'une texture
CreateTexture(#texture,64,64)

;Remplissage de la texture en blanc pour visualiser les couleurs des sommets 
StartDrawing(TextureOutput(#Texture))
  Box(0,0, TextureWidth(#Texture), TextureHeight(#Texture), RGB(255, 255, 255))
StopDrawing()

;Création d'une matière
CreateMaterial(#Matiere, TextureID(#Texture))
MaterialAmbientColor(#Matiere, #PB_Material_AmbientColors)

;Création entity
CreateEntity(#Entity, MeshID(#Mesh), MaterialID(#Matiere))

;Ajoute une caméra , c'est indispensable pour voir quelque chose 
CreateCamera(#Camera, 25, 25, 50, 50) ; Création d'une caméra
CameraBackColor(#Camera, $FF0000) ; Couleur de fond bleue
CameraLocate(#Camera,0,0,20) ; Positionne la caméra 
CameraLookAt(#Camera, EntityX(#Entity), EntityY(#Entity), EntityZ(#Entity)) ; Oriente la caméra vers l'entity

Repeat

  ClearScreen(RGB(0,0,0))
           
  ExamineKeyboard()
 
  RenderWorld() ; Affiche le monde 3D
  
  FlipBuffers()
       
Until KeyboardPushed(#PB_Key_All) 


DataSection

  SommetsTriangles:
  
  Data.f -3,-3,0   ; coordonnée de l'index 0
  Data.l $FF0000   ; la couleur de l'index 0
  Data.f 3,-3,0    ; coordonnée de l'index 1
  Data.l $FF0000   ; la couleur de l'index 1
  Data.f 3,3,0     ; coordonnée de l'index 2
  Data.l $FF0000   ; la couleur de l'index 2
  Data.f -3,3,0    ; coordonnée de l'index 3
  Data.l $FF0000   ; la couleur de l'index 3

IndexTriangles:

Data.w 0,1,2      ; il faut créer les triangles dans l'ordre des indexs
Data.w 2,3,0

EndDataSection


EndIf
djfeeler2
Messages : 65
Inscription : lun. 02/juil./2007 20:57

Message par djfeeler2 »

Maintenant je vais passer a l'étape suivante ! un carré en 3d qui tourne :lol:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ou une pyramide pour changer :)
djfeeler2
Messages : 65
Inscription : lun. 02/juil./2007 20:57

Message par djfeeler2 »

oui c'est une bonne idée :lol: c'est un exercice parfait :D
Répondre