Je n'arrive pas à centrer horizontalement un texte 3D

Généralités sur la programmation 3D
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Je n'arrive pas à centrer horizontalement un texte 3D

Message par falsam »

Tout est dans le titre alors voici le code de test.

Code : Tout sélectionner

EnableExplicit

; DPI Résolution
Global drx.f, dry.f, t

; Node Cube et texte 3D
Global node, cube, text3d

drx = DesktopResolutionX()
dry = DesktopResolutionY()

InitEngine3D(#PB_Engine3D_DebugLog) : InitSprite() : InitKeyboard()

ExamineDesktops()
OpenWindow(0, 0,0, DesktopWidth(0)*0.5,DesktopHeight(0)*0.5, "CreateShader - [Esc] quit",#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0)*drx, WindowHeight(0)*dry, 0, 0, 0)

; Localisation des assets pour le texte 3D
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()

; Camera
CreateCamera(0, 0, 0, 100, 100) 
MoveCamera(0, 0, 0, -6) 
CameraLookAt(0, 0, 0, 0)
CameraBackColor(0, RGB(211, 211, 211))

; Lumiere
CreateLight(0, RGB(211, 211, 211), -100, 100, 0)
AmbientColor(RGB(154, 205, 50))

; Une entité 
cube = CreateEntity(#PB_Any, MeshID(CreateCube(#PB_Any, 0.1)), #PB_Material_None)

; Le texte couleur rouge
text3d = CreateText3D(#PB_Any, "Hello World", "", 0.5, RGBA(255, 255, 255, 255))
Text3DAlignment(text3d, #PB_Text3D_HorizontallyCentered)

; Un node sur lequel j'attache le cube puis le texte
node = CreateNode(#PB_Any, -4, 0, 0)
AttachNodeObject(node, EntityID(cube))
AttachNodeObject(node, Text3DID(text3d))

t=1

Repeat
  While WindowEvent() : Wend
  ExamineKeyboard() 
  
  MoveNode(node, 0.004 * t, 0, 0, #PB_Relative)
  
  If NodeX(node) > 4
    t*-1
  EndIf
  
  If NodeX(node) < -4
    t*-1
  EndIf
  
  RenderWorld()
  FlipBuffers()    
Until KeyboardReleased(#PB_Key_Escape)
D'avance merci pour votre aide ;)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par falsam »

J'ai modifié le code précédent. le cube bouge de gauche à droite puis de droite à gauche.

la position du texte par rapport au cube change durant la trajectoire du cube.

:?: Alors comment faire pour centrer le texte sur l'axe vertical du cube ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par SPH »

Ligne 36 :

Code : Tout sélectionner

text3d = CreateText3D(#PB_Any, "Hello World", "", 1, RGBA(255, 255, 255, 255))
C'est "centré" comme ça que tu cherches ?

!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
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par falsam »

@SPH Je souhaite que le cube soit centré sur le milieu du texte quelque soit le texte.

Hello world
       
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par SPH »

Tout en laissant le cube en dessous du texte ? (je veux dire, tu ne remonteras pas le cube qui viendra percuter le texte ?)

!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
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par SPH »

J'ai farfouillé, j'ai cherché et la seule explication que j'ai trouvé dans ma tete est que le cube est plus proche de la camera que le texte. D'où ce décallage. :idea:

!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
Avatar de l’utilisateur
Guillot
Messages : 672
Inscription : jeu. 25/juin/2015 16:18

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par Guillot »

ouai, c'est un bug
de plus je m'aperçois qu'il n'y a pas la constante #right dans Text3DAlignment
je vais regarder ça

Code : Tout sélectionner

; DPI Résolution
Global.f drx, dry, a,y


drx = DesktopResolutionX()
dry = DesktopResolutionY()

InitEngine3D(#PB_Engine3D_DebugLog) : InitSprite() : InitKeyboard()

ExamineDesktops()
OpenWindow(0, 0,0, DesktopWidth(0)*0.5,DesktopHeight(0)*0.5, "CreateShader - [Esc] quit",#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0)*drx, WindowHeight(0)*dry, 0, 0, 0)

; Localisation des assets pour le texte 3D
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()

CreateCamera(0, 0, 0, 100, 100) 
CameraBackColor(0, RGB(211, 211, 211))

CreateLight(0, RGB(211, 211, 211), -100, 100, 0)
AmbientColor(RGB(154, 205, 50))

For i=0 To 10
  CreateText3D(i, Left("BLABLABLABLABLABLA",Random(10)+1), "", 1, RGBA(255, 255, 255, 255))
  Text3DAlignment(i, #PB_Text3D_HorizontallyCentered)
  y=(i-5)*1.5
  MoveText3D  (i,0,y,0)
  CreateLine3D(i,0,y,0,$ff,0,y+1,0,$ff)
Next

Repeat
  While WindowEvent() : Wend
  a+0.1
  MoveCamera(0,Cos(a)*20,0,Sin(a)*20,#PB_Absolute)
  CameraLookAt(0,0,0,0)
  ExamineKeyboard() 
  RenderWorld()
  FlipBuffers()    
Until KeyboardReleased(#PB_Key_Escape)
Avatar de l’utilisateur
falsam
Messages : 7323
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Je n'arrive pas à centrer horizontalement un texte 3D

Message par falsam »

Ce qui est étonnant c'est de voir que le texte3D se positionne de manière différente suivant la position du node.

Idem si on positionne le texte3D sur une entité.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre