PureBasic

Forums PureBasic
Nous sommes le Sam 24/Aoû/2019 8:46

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: [PB 5.50] - Créer et texturer un cube
MessagePosté: Mar 11/Oct/2016 21:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
Avec PB 5.50, le cube possède six sub-meshes pour le rendre facile à texturer sur chacune des faces.

■ Il est encore possible d'appliquer globalement une texture sur un cube lors de la création de l'entité de cette manière.
Code:
LoadTexture(0, "texture.jpg")
CreateMaterial(0, TextureID(0))
CreateEntity(0, MeshID(0), MaterialID(0))

■ Pour texturer chaque face d'une entité (cube) avec PB5.50 il faut
- Loader une texture par face.
- Créer l'entité sans appliquer de material : CreateEntity(0, MeshID(0), #PB_Material_None)
- Texturer chaque face avec l'instruction SetEntityMaterial(0, MaterialID(#Material), Sub-Mesh)

■ Code exemple.
Code:
;[PB 5.50] - Create cube
;Avec PB 5.50, le cube possède six sub-meshes pour le rendre facile à texturer sur chacune des faces.
;With PB 5.50,  the cube have six submeshes to make it easy to texture its faces separately.


LoadFont(0, "Arial", 20)

InitEngine3D() : InitKeyboard() : InitSprite()

UseJPEGImageEncoder()

OpenWindow(0,0,0,1024,768,"Cube Texturing")
OpenWindowedScreen(WindowID(0),0,0,1024,768)

Add3DArchive(".", #PB_3DArchive_FileSystem)

CreateCamera(0, 0, 0, 100, 100)
CameraBackColor(0, RGB(245, 222, 179))
MoveCamera(0, 5, 5, 5)
CameraLookAt(0, 0, 0, 0)
CreateLight(0, RGB(255, 255, 255), -100, 200, 100)

;Creer un cube mesh - Create a cube mesh
CreateCube(0, 2)

;Créer six textures & materiel - Create six textures & materials
For n = 0 To 5
  CreateImage(n, 128, 128, 24, RGB(154, 205, 50))
  StartDrawing(ImageOutput(n))
  DrawingMode(#PB_2DDrawing_Transparent)
  DrawingFont(FontID(0))
  DrawText(20, 20, "Face " + n, RGB(255, 255, 255))
  StopDrawing()
   
  SaveImage(n, "texture" + n + ".jpg", #PB_ImagePlugin_JPEG)
  CreateMaterial(n, TextureID(LoadTexture(#PB_Any, "texture" + n + ".jpg")))
Next

;Creation entité (Cube) - Create entitity (Cube)
CreateEntity(0, MeshID(0), #PB_Material_None)

;Texturer chaque cotés du cube  - Texturing each side of the cube
For n = 0 To 5
  SetEntityMaterial(0, MaterialID(n), n)
Next


While #True 
  Repeat
    Event  = WindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until Event = 0     
 
  RotateEntity(0, 0.1, 0.2, 0.3, #PB_Relative)
 
  If ExamineKeyboard() 
    If KeyboardReleased(#PB_Key_Escape)
      Break
    EndIf   
  EndIf
 
  RenderWorld()
  FlipBuffers()
Wend

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [PB 5.50] - Créer et texturer un cube
MessagePosté: Mer 12/Oct/2016 10:07 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 05/Sep/2008 11:42
Messages: 1120
Localisation: Besançon
Merci de l'info falsam :D

C'est bon ça !

_________________
Only PureBasic makes it possible


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [PB 5.50] - Créer et texturer un cube
MessagePosté: Ven 03/Mar/2017 23:14 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
Retour en arrière avec la version 5.60 : Le cube ne se compose plus que d'un seul mesh. !!!

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [PB 5.50] - Créer et texturer un cube
MessagePosté: Sam 04/Mar/2017 1:57 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5162
oui c'est suite à cette discussion
http://www.purebasic.fr/english/viewtopic.php?f=36&t=67632

Et ci-dessous un cube avec 6 faces


Code:
; ------------------------------------------------------------
;
;   PureBasic - Manual Mesh
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------


#CameraSpeed = 1

IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY

Define.f x, y, z, nx, ny, nz, u, v
Define.l Co
Define.w t1, t2, t3

If InitEngine3D()
 
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
 
  InitSprite()
  InitKeyboard()
  InitMouse()
     
  If Screen3DRequester()
    LoadFont(0, "Arial", 20)
         
    UseJPEGImageEncoder()
   
    #CUBE_SIZE = 1
    #CUBE_HALF_SIZE = #CUBE_SIZE / 2.0
    CreateMesh(0, #PB_Mesh_TriangleList)
    ;front side
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
   
    ;back side
    AddSubMesh()
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
    ;left side
    AddSubMesh()
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
    ;right side
    AddSubMesh()
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
   
    ;up side
    AddSubMesh()
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
    ;down side
    AddSubMesh()
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
       
    FinishMesh(#True)

    UpdateMeshBoundingBox(0)
       
    ;Créer six textures & materiel - Create six textures & materials
    For n = 0 To 5
      CreateTexture(n, 128, 128)
      StartDrawing(TextureOutput(n))
      Box(0,0, OutputWidth(), OutputHeight(), RGB(154, 205, 50))
      DrawingMode(#PB_2DDrawing_Transparent)
      DrawingFont(FontID(0))
      DrawText(20, 20, "Face " + n, RGB(255, 255, 255))
      StopDrawing()
     
      ;SaveImage(n, "texture" + n + ".jpg", #PB_ImagePlugin_JPEG)
      CreateMaterial(n, TextureID(n))
    Next
   
    ;Creation entité (Cube) - Create entitity (Cube)
    CreateEntity(0, MeshID(0), #PB_Material_None)
   
    ;Texturer chaque cotés du cube  - Texturing each side of the cube
    For n = 0 To 5
      SetEntityMaterial(0, MaterialID(n), n)
    Next
   
   
   
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 0, 0, 5, #PB_Absolute)
   
    CreateLight(0, RGB(255,255,255), 300, 600, -100)
    AmbientColor(RGB(80, 80, 80))
   
    Repeat
      Screen3DEvents()
     
      If ExamineMouse()
        MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
        MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
      EndIf
     
      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
     
      RotateEntity(0, 1, 1, 1, #PB_Relative)
     
      RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY)
     
      RenderWorld()
      Screen3DStats()     
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
 
Else
  MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf

End

_________________
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.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [PB 5.50] - Créer et texturer un cube
MessagePosté: Sam 04/Mar/2017 10:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
heu ... j'ai pas testé mais

la methode "Falsam"
Code:
CreateCube(0, 2)
, bon ok ça reste simple


la methode "Comtois"

Code:
CreateMesh(0, #PB_Mesh_TriangleList)
    ;front side
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, 1)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
   
    ;back side
    AddSubMesh()
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 0, -1)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
    ;left side
    AddSubMesh()
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(-1, 0, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
    ;right side
    AddSubMesh()
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(1, 0, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
   
    ;up side
    AddSubMesh()
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, #CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, 1, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
   
    ;down side
    AddSubMesh()
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(0, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(1, 1)
    MeshVertexPosition(#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(1, 0)
    MeshVertexPosition(-#CUBE_HALF_SIZE, -#CUBE_HALF_SIZE, #CUBE_HALF_SIZE)
    MeshVertexNormal(0, -1, 0)
    MeshVertexTextureCoordinate(0, 0)
    MeshFace(0, 1, 2)
    MeshFace(0, 2, 3)
       
    FinishMesh(#True)




c'est une blague ? :lol: :lol:
je me vois pas faire un Minecraft , si on dois faire ça a chaque cube :lol:

nombre de ligne de code : 1265498764655121319846464 , juste pour les cubes ! :lol:

(oui, je sais, c'est juste le mesh... ;) )

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [PB 5.50] - Créer et texturer un cube
MessagePosté: Sam 04/Mar/2017 17:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
@Comtois: Merci beaucoup pour ce code. Peut etre qu'un flag #False ou #True aurait pu permettre de préciser si on souhaite créer un mesh à un ou six sub-mesh. :wink:

Zorro a écrit:
je me vois pas faire un Minecraft , si on dois faire ça a chaque cube
Heureusement que non. Le mesh est une forme invisible servant de model lors de la création de l'entité visible.
Pour créer 3 ou x cubes, un seul mesh suffit.

Petit code de démonstration.
Code:
InitEngine3D()
InitKeyboard()
InitSprite()

window = OpenWindow(#PB_Any,0,0,1024,768,"Cubes")
OpenWindowedScreen(WindowID(window),0,0,1024,768)

;Les textures utiliser se trouvent dans les exemples de PureBasic
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)

; Une forme : C'est notre MESH qui ici sera un cube
Mesh = CreateCube(#PB_Any, 1)

; Chargement texture (Ne pas indiquer le path)
Texture = LoadTexture(#PB_Any, "Caisse.png")

; Un MATERIEL c'est la partie visible de notre cube qui sera constitué de notre texture
Material = CreateMaterial(#PB_Any,TextureID(texture))

; Création de trois entité : ENTITE = MESH + MATERIEL en position x y z
Cube0 = CreateEntity(#PB_Any, MeshID(Mesh), MaterialID(Material), 0, 0, 0)
Cube1 = CreateEntity(#PB_Any, MeshID(Mesh), MaterialID(Material), 0, 1, 0)
Cube2 = CreateEntity(#PB_Any, MeshID(Mesh), MaterialID(Material), 1, 0, 0)

; Une camera
Camera = CreateCamera(#PB_Any,0, 0, 100,100)
CameraBackColor(Camera, RGB(154, 205, 50))

; La caméra regarde en direction d'un point au coordonnées x=0, y=0, z=0
CameraLookAt(camera, 0, 0, 0)

;Contrairement à la 2D on affiche pas les entités
While #True
 
  Event = WindowEvent()
  ExamineKeyboard() 
 
  ; Bouton Close ou touche Escape pour fermer l'application
  If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
    Break
  EndIf 
 
  ;Rappel : La camera regarde en direction d'un point au coordonnées x=0, y=0, z=0
  ;Placement de la camera en x = 0, y=2 z=10
  MoveCamera(camera, 2, 2, 8, #PB_Absolute)
 
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld()
  FlipBuffers()
Wend
Avec ce code je n'utilise pas la méthode de Comtois car je ne cherche pas à texturer chacune des faces avec une texture différente.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye