PureBasic

Forums PureBasic
Nous sommes le Lun 16/Sep/2019 13:38

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 27 messages ]  Aller à la page Précédente  1, 2
Auteur Message
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 12:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4065
comtois a écrit:
SPH a écrit:
Peut on egalement afficher un simple triangle en 3D dans ogre ?


Non, on peut faire des trucs comme ça, mais afficher un simple triangle avec Ogre c'est pas possible :twisted:


Je suppose que c'est possible. Mais ma question a un enjeux plus important. Une question qui m'indiquera si je peux faire ce que je veux avec ogre : peut on trier les faces d'un paquet de triangles pour afficher ceux qui sont devant ?

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 13:32 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 21/Mai/2005 17:50
Messages: 1318
ca se fait tout seul avec le moteur 3D, c'est pour ca que c'est pratique !!

_________________
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 13:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4065
Bin, je veux faire une demo oldschool et j'ai l'impression que ogre ne fait que du tres compliqué... :oops:
Bon, je vais me pencher sur ogre alors... 8)

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 14:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8750
SPH a écrit:
Peut on egalement afficher un simple triangle en 3D dans ogre ?

Sérieux...

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 14:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4065
Ar-S a écrit:
SPH a écrit:
Peut on egalement afficher un simple triangle en 3D dans ogre ?

Sérieux...

Oui, serieux :!:

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 20:30 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3426
Tiens un vieux code que j'avais fait et posté ici :

Code:
Structure World3D
x.f
y.f
z.f
EndStructure

Global Dim Point3D.World3D(8)
Global Dim Point2D.World3D(8)
Global Dim Sommet.World3D(8)

#Xoff = 512
#Yoff = 384
#Zoff = 250

Global Dim Matrice.f(3,3)

; /****************************************************************************/
; /* Rotation() : effectue la rotation des points Sommets -> Point3D           */
; /****************************************************************************/

Procedure Rotation(Xa.f,Ya.f,Za.f)


  matrice(0,0) = Cos(Za)*Cos(Ya)
  matrice(1,0) = Sin(Za)*Cos(Ya)
  matrice(2,0) = -Sin(Ya)

  matrice(0,1) = Cos(Za)*Sin(Ya)*Sin(Xa) - Sin(Za)*Cos(Xa)
  matrice(1,1) = Sin(Za)*Sin(Ya)*Sin(Xa) + Cos(Xa)*Cos(Za)
  matrice(2,1) = Sin(Xa)*Cos(Ya)

  matrice(0,2) = Cos(Za)*Sin(Ya)*Cos(Xa) + Sin(Za)*Sin(Xa)
  matrice(1,2) = Sin(Za)*Sin(Ya)*Cos(Xa) - Cos(Za)*Sin(Xa)
  matrice(2,2) = Cos(Xa)*Cos(Ya)
 
 
  For i = 0 To 7
    Point3D(i)\x = matrice(0,0)*Sommet(i)\x + matrice(1,0)*Sommet(i)\y + matrice(2,0)*Sommet(i)\z
    Point3D(i)\y = matrice(0,1)*Sommet(i)\x + matrice(1,1)*Sommet(i)\y + matrice(2,1)*Sommet(i)\z
    Point3D(i)\z = matrice(0,2)*Sommet(i)\x + matrice(1,2)*Sommet(i)\y + matrice(2,2)*Sommet(i)\z
  Next i 
 
EndProcedure


; /****************************************************************************/
; /* Projection() : projette en perspective les points après rotation.        */
; /****************************************************************************/


Procedure Projection()
For i = 0 To 7
Point2D(i)\x=(Point3D(i)\x*256)/(Point3D(i)\z+#Zoff)+#Xoff;
Point2D(i)\y=(Point3D(i)\y*256)/(Point3D(i)\z+#Zoff)+#Yoff;
Next i
EndProcedure


; /****************************************************************************/
; /* Initialiser() : initialise les coordonnees des sommets du cube           */
; /****************************************************************************/
Procedure Initialiser()

  Sommet(0)\x = -100 : Sommet(0)\y = -100 : Sommet(0)\z = -100
  Sommet(1)\x =  100 : Sommet(1)\y = -100 : Sommet(1)\z = -100
  Sommet(2)\x =  100 : Sommet(2)\y =  100 : Sommet(2)\z = -100
  Sommet(3)\x = -100 : Sommet(3)\y =  100 : Sommet(3)\z = -100
  Sommet(4)\x =  100 : Sommet(4)\y = -100 : Sommet(4)\z =  100
  Sommet(5)\x = -100 : Sommet(5)\y = -100 : Sommet(5)\z =  100
  Sommet(6)\x = -100 : Sommet(6)\y =  100 : Sommet(6)\z =  100
  Sommet(7)\x =  100 : Sommet(7)\y =  100 : Sommet(7)\z =  100

EndProcedure


Procedure ligne(a.l,b.l,couleur.l)
  LineXY(Point2D(a)\x,Point2D(a)\y,Point2D(b)\x,Point2D(b)\y,couleur);
EndProcedure


Procedure Update()
Static Couleur.l

Couleur = RGB(100,100,255)

StartDrawing(ScreenOutput())
  For i = 0 To 7

Circle(Point2D(i)\x,Point2D(i)\y,3,Couleur)
;
; Locate(Point2D(i)\x,Point2D(i)\y)
; DrawText(Str(i))
;
;
ligne(0,1,couleur)
ligne(1,2,couleur)
ligne(2,3,couleur)
ligne(3,0,couleur)
ligne(4,5,couleur)
ligne(5,6,couleur)
ligne(6,7,couleur)
ligne(7,4,couleur)
ligne(0,5,couleur)
ligne(1,4,couleur)
ligne(2,7,couleur)
ligne(3,6,couleur)


  Next i
StopDrawing()
EndProcedure





InitSprite () : InitKeyboard () : InitMouse ()
OpenScreen (1024,768,32, "" )




Initialiser()


Repeat
ExamineKeyboard () : ExamineMouse() : ClearScreen (0)


Xangle.f + 0.01
Yangle.f + 0.03
ZAngle.f + 0.01

Rotation(Xangle,Yangle,Zangle)
Projection()
  Update()


FlipBuffers ()
Until KeyboardPushed ( #PB_Key_Escape )


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mar 01/Juil/2014 21:59 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
Superbe code ! :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mer 02/Juil/2014 6:49 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4065
J'adooore :P

Je cherchais un code 3D qui accentue la profondeur et la, je suis servi. Encore bravo !!

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mer 02/Juil/2014 7:36 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3426
Le principe de la 3D est relativement simple.
tu as une liste de points 3D qui représente ton objet sans les transformation ( rotation, position, échelle )
tu appliques ensuite des transformations de ces points par le biais de calcul via des matrices, le résultat te donne des points 3D "transformé" , tu as donc 2 listes de points, les point de l'objet non transformé , les points de l'objet tranformé.
il reste une dernière transformation à faire , la projection à l'écran. ton écran est un plan 2D , tu dois donc projeter tes points 3D dessus , il en ressortira des points 2D ( les coordonnée en pixel sur ton écran ) , y a plus qu'a dessiné.
Le code plus haut à une dizaine d'année , je m'étais inspiré de christophe heulin quand j'apprennais la 3D : http://103683.free.fr/3dtut/Plan3D.html


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mer 02/Juil/2014 12:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4065
G-Rom a écrit:

Ca a l'air interessant. Je le lirais :idea:

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Mer 02/Juil/2014 13:42 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 27/Jan/2005 19:07
Messages: 2194
La même chose chez celui-ci en moins orthodoxe au niveau de la présentation! :)

_________________
Est beau ce qui plaît sans concept :)
Speedy Galerie


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Apprendre les routines 3D
MessagePosté: Jeu 06/Oct/2016 9:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8750
Ligne 92 en décommettant le drawtext et en le remplaçant par :
Code:
DrawText(Point2D(i)\x,Point2D(i)\y,Str(i))

L'effet est sympa :wink:

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 27 messages ]  Aller à la page Précédente  1, 2

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 à:  
cron

 


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