Soucis de texture de dès
Publié : sam. 23/janv./2016 0:07
Salut,
Etant un gros noob en codage 3D, j'ai repris le code de falsam concernant les cubes car j'aimerai créer des dés en 3D
J'ai donc créé une texture qui me parait logique.
J'ai repris le code en insérant la texture.
Mon soucis est qu'elle se plaque en entier sur chaque face du dés. Comment l'appliquer à l'ensemble de l'objet ?
Note: j'ai compilé en 5.31 car en 5.41 EntityPhysicBody est obsolète.. Je suppose que ça a été remplacé par CreateEntityBody à la place de CreateEntity mais dans le doute...
Etant un gros noob en codage 3D, j'ai repris le code de falsam concernant les cubes car j'aimerai créer des dés en 3D
J'ai donc créé une texture qui me parait logique.
J'ai repris le code en insérant la texture.
Mon soucis est qu'elle se plaque en entier sur chaque face du dés. Comment l'appliquer à l'ensemble de l'objet ?
Note: j'ai compilé en 5.31 car en 5.41 EntityPhysicBody est obsolète.. Je suppose que ça a été remplacé par CreateEntityBody à la place de CreateEntity mais dans le doute...
Code : Tout sélectionner
;Naissance d'un cube : Premiere chute
UsePNGImageDecoder()
; Coordonnées x,y,z de la caméra
Define.f CamX, CamY, CamZ
InitEngine3D()
Parse3DScripts()
InitKeyboard()
InitSprite()
window = OpenWindow(#PB_Any,0,0,1024,768,"Histoire d'un cube")
OpenWindowedScreen(WindowID(window),0,0,1024,768)
;
; Naissance d'un cube
; Une forme : C'est notre MESH qui ici sera un cube
Cube_Mesh = CreateCube(#PB_Any, 1)
Ground_Mesh = CreatePlane(#PB_Any, 10, 10, 3, 3, 3, 3)
Add3DArchive("C:\Users\LDVM\OneDrive\Documents\PB\3D\des", #PB_3DArchive_FileSystem)
Texture = LoadTexture(#PB_Any,"text1.png")
; StartDrawing(TextureOutput(Texture))
; Box(0,0,512,512,RGB(0, 0, 0))
; Box(1,1,510,510,RGB(255, 216, 0))
; StopDrawing()
; Un MATERIEL c'est la partie visible de notre cube qui sera constitué de notre texture
Material = CreateMaterial(#PB_Any,TextureID(texture))
; Création d'un cube en hauteur
; CreateEntity() permet de définir les coordonnées x,y,z lors de la création d'une entité
Cube_Entity = CreateEntity(#PB_Any, MeshID(Cube_Mesh), MaterialID(Material), 0, 1, 0)
EntityPhysicBody(Cube_Entity, #PB_Entity_BoxBody,2,0,1)
; Création du sol
Ground_Entity = CreateEntity(#PB_Any, MeshID(Ground_Mesh), MaterialID(Material), 0, -2, 0)
EntityPhysicBody(Ground_Entity, #PB_Entity_StaticBody, 0, 0, 1)
;
;Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)
;
; Une camera
Camera = CreateCamera(#PB_Any,0,0,100,100)
CamX=2.0
CamY=1.0
CamZ=15
; La caméra regarde en direction du point au coordonnées x=0, y=0, z=0
CameraLookAt(camera,0,0,0)
While #True
Event = WindowEvent()
ExamineKeyboard()
; Touche Escape pour fermer l'application
If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
Break
EndIf
If KeyboardPushed(#PB_Key_Left)
CamX-0.2
ElseIf KeyboardPushed(#PB_Key_Right)
CamX+0.2
EndIf
If KeyboardPushed(#PB_Key_Up)
CamY+0.2
ElseIf KeyboardPushed(#PB_Key_Down)
CamY-0.2
EndIf
MoveCamera(camera, CamX, CamY, CamZ, #PB_Absolute)
; Affiche le rendu de la scène
RenderWorld()
FlipBuffers()
Wend