PureBasic

Forums PureBasic
Nous sommes le Mar 21/Mai/2013 22:07

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 17 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Avis aux utilisateurs de Linux
MessagePosté: Mer 15/Sep/2010 8:18 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 29/Juin/2007 17:50
Messages: 1901
Salut à vous!

Voilà, j'ai un problème car dans ce sujet ici, je sollicite l'aide des utilisateurs de Linux.

Est-ce que quelqu'un, s'il-vous-plaît (au moins 2 personnes, ce serait bien) pourrait vérifier le code de STARGÅTE que je vais poster ci-dessous?

Le but est de bien regarder la texture pendant la rotation et voir si cette texture vous semble réaliste ou pas.

Il y a 3 possibilités de réponse:
1) Les 2 textures sont identiques et légèrement tordues
2) Les 2 textures sont différentes et l'une d'entre elles est tordue, alors que l'autre est bien formée
3) Les 2 textures sont identiques et bien formées

Code:
; Auteur : STARGÅTE
InitSprite()
InitSprite3D()
InitMouse()
InitKeyboard()
OpenWindow(0, 0, 0, 800, 600, "Screen", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)

  CreateSprite(1, 64, 64, #PB_Sprite_Texture)
  StartDrawing(SpriteOutput(1))
    Box(0, 0, 64, 64, $808080)
    For x = 0 To 7
    For y = 0 To 7
      If (x+y)%2 : Box(x*8, y*8, 8, 8, $FFFFFF) : EndIf
    Next
    Next
  StopDrawing()
  CreateSprite3D(1, 1)
   
Repeat
     
      ExamineMouse()
  ClearScreen(0)

  #HalfSize = 150
  #Distance = 500

  Start3D()

    a.f + MouseDeltaX() / 50.0

    z1.f = #Distance-Sin(a)*#HalfSize : z4.f=z1
    z2.f = #Distance+Sin(a)*#HalfSize : z3.f=z2
    x1.f = -Cos(a)*#HalfSize : x4.f=x1
    x2.f =  Cos(a)*#HalfSize : x3.f=x2
    j.f = (#HalfSize/#Distance) * #HalfSize
    y1.f = -#HalfSize-Sin(a)*j : y2.f=-#HalfSize+Sin(a)*j
    y3.f = #HalfSize-Sin(a)*j : y4.f=#HalfSize+Sin(a)*j
    TransformSprite3D(1, x1,y1, x2,y2, x3,y3, x4,y4)
    DisplaySprite3D(1, 200, 300)
    TransformSprite3D(1, x2,y2, x1,y1, x4,y4, x3,y3)
    DisplaySprite3D(1, 200, 300)

    TransformSprite3D(1, x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4)
    DisplaySprite3D(1, 600, 300)
    TransformSprite3D(1, x2,y2,z2, x1,y1,z1, x4,y4,z4, x3,y3,z3)
    DisplaySprite3D(1, 600, 300)

  Stop3D()
 
  StartDrawing(ScreenOutput())
    DrawText(100,50,"3D-rotation without parameter z")
    DrawText(500,50,"3D-rotation with parameter z")
  StopDrawing()
 
  FlipBuffers()
      ExamineKeyboard()
Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)


Dernière édition par Ollivier le Sam 18/Sep/2010 8:05, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Mer 15/Sep/2010 11:58 
Hors ligne

Inscription: Sam 29/Mai/2010 16:04
Messages: 11
Moi j'ai les 2 mêmes images mais elle se defomre suivant ou je suis avec la camera.
face a la caméra elle son quasiment pas déformé et plus je me décalle plus elle se déforme.

p.s : pas très pratique pour sortir de ton prog :).


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Ven 17/Sep/2010 18:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 29/Juin/2007 17:50
Messages: 1901
@Akra Laya

Merci de t'être porté volontaire.



Si d'autres utilisateurs de Linux pouvaient faire ce test, ça offrirait plus de précisions sur une amélioration à apporter à la fonction TransformSprite3D().

En espérant que ça en motive au moins un ou deux autres...


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Sam 18/Sep/2010 0:17 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12948
un pivotement de la cam droite-gauche (comme dire non de la tete) donne pour les 2 images le meme type de deformation ! (elle se déforme de façon identique)

ps: tu aurai pu ajouter un test de la touche esc ou du bouton droit
c'est vrais que pour sortir du prg j'ai du utiliser ALT+F4 :roll:

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Sam 18/Sep/2010 8:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 29/Juin/2007 17:50
Messages: 1901
Dobro a écrit:
un pivotement de la cam droite-gauche (comme dire non de la tete) donne pour les 2 images le meme type de deformation ! (elle se déforme de façon identique)

Merci d'avoir testé.
Dobro a écrit:
ps: tu aurai pu ajouter un test de la touche esc ou du bouton droit
c'est vrais que pour sortir du prg j'ai du utiliser ALT+F4

J'ai rajouté le test de touche que tu demandes pour quitter plus facilement, et je ne savais pas que sous Linux, c'était aussi Alt+F4 pour quitter une application...


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Sam 18/Sep/2010 8:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12948
Ollivier a écrit:
et je ne savais pas que sous Linux, c'était aussi Alt+F4 pour quitter une application...



voir ici :
http://www.linuxpedia.fr/doku.php/les_r ... essentiels

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Sam 18/Sep/2010 22:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 29/Juin/2007 17:50
Messages: 1901
@Dobro

Okay merci! Mais, une pensée me parvient:

Mis à part Akra Laya et toi, les Linuxiens me font la gueule ou quoi?!?

En plus, a priori, il y a un vrai bug! Ce n'est qu'un simple code de contrôle diffusé en toute transparence, pas un troyen dans un exécutable...

Ollivier


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Sam 18/Sep/2010 23:42 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 08/Jan/2010 1:14
Messages: 810
Localisation: Québec, Canada
L'affaire, c'est que je ne peux pas fermé mon Windows avant que la licence de Delphi de mon Cégep soit accepté. Je sais pas comment ça marche, mais le monsieur m'as dit ça donc j'attends! :?


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 10:08 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 07/Avr/2005 1:06
Messages: 1392
Localisation: Vietnam-HCMC
Je viens de tester sous Linux Debian Lenny, je sais pas ce qui ce passe, j'ai bien les deux images identiques, mais quand je bouge la souris l'affichage est d'une lenteur !!! 8O :?


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 10:46 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12948
flaith a écrit:
Je viens de tester sous Linux Debian Lenny, je sais pas ce qui ce passe, j'ai bien les deux images identiques, mais quand je bouge la souris l'affichage est d'une lenteur !!! 8O :?


chez moi aussi , mais je pensai que c'etait du au manque de carte graph 3D dans mon nc10 :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 13:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 04/Juin/2004 14:27
Messages: 236
Comme l'a écrit Flaith, et confirmé par Dobro, c'est très lent ! Chez moi aussi ! :wink:


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 19:20 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 29/Juin/2007 17:50
Messages: 1901
@Flaith et @Ulix

Bonjour, et merci pour vos observations. Est-ce que cette lenteur est dûe à la manière de coder?

Je vois plusieurs cause à ce "nouveau" problème:

1) Le sous-système n'a pas été correctement précisé (opengl dans les sous-systèmes)
2) La séquence de dessin classique est incompatible avec OpenGL (dans ce cas, voici une correction plus bas)
3) Autre chose...

Au passage, j'ai informé ce bug de la déformation de texture sous OpenGL sur le forum anglais

Code:
; Auteur : STARGÅTE
InitSprite()
InitSprite3D()
InitMouse()
InitKeyboard()
OpenWindow(0, 0, 0, 800, 600, "Screen", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)

  CreateSprite(1, 64, 64, #PB_Sprite_Texture)
  StartDrawing(SpriteOutput(1))
    Box(0, 0, 64, 64, $808080)
    For x = 0 To 7
    For y = 0 To 7
      If (x+y)%2 : Box(x*8, y*8, 8, 8, $FFFFFF) : EndIf
    Next
    Next
  StopDrawing()
  CreateSprite3D(1, 1)
   
Repeat
     
      ExamineMouse()
  ClearScreen(0)

  #HalfSize = 150
  #Distance = 500

  Start3D()

    a.f + MouseDeltaX() / 50.0

    z1.f = #Distance-Sin(a)*#HalfSize : z4.f=z1
    z2.f = #Distance+Sin(a)*#HalfSize : z3.f=z2
    x1.f = -Cos(a)*#HalfSize : x4.f=x1
    x2.f =  Cos(a)*#HalfSize : x3.f=x2
    j.f = (#HalfSize/#Distance) * #HalfSize
    y1.f = -#HalfSize-Sin(a)*j : y2.f=-#HalfSize+Sin(a)*j
    y3.f = #HalfSize-Sin(a)*j : y4.f=#HalfSize+Sin(a)*j
    TransformSprite3D(1, x1,y1, x2,y2, x3,y3, x4,y4)
    DisplaySprite3D(1, 200, 300)
    TransformSprite3D(1, x2,y2, x1,y1, x4,y4, x3,y3)
    DisplaySprite3D(1, 200, 300)

    TransformSprite3D(1, x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4)
    DisplaySprite3D(1, 600, 300)
    TransformSprite3D(1, x2,y2,z2, x1,y1,z1, x4,y4,z4, x3,y3,z3)
    DisplaySprite3D(1, 600, 300)

  Stop3D()
 
  FlipBuffers()
      ExamineKeyboard()
Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 20:41 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2132
pour être plus "fluide"
c'est dans cette ordre qu'il faut passer les commandes :

Code:
  ClearScreen(0)
 
  ExamineMouse()
  ExamineKeyboard()


le problème de correction de perspective sera corrigé prochainement, l'oubli à été soumis à Fred.


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 21:30 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 05/Sep/2008 11:42
Messages: 883
Localisation: Besançon
Je ne sais pas si ça peut apporter un truc mais sous Vista j'ai ça :
Je post, des fois, que tu pensais que ça marchait sans soucis sous windows
En revanche, c'est très rapide :D

Image

_________________
Only PureBasic makes it possible


Haut
 Profil  
 
 Sujet du message: Re: Avis aux utilisateurs de Linux
MessagePosté: Dim 19/Sep/2010 21:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 04/Juin/2004 14:27
Messages: 236
@Olivier

Ton second code est beaucoup plus rapide.
Je possède une carte graphique Nvidia Gforce 6200 GT et je pensé que le rendu aurait plus fluide.
Ton code est-il conçu pour utilisé l'accélération 3D d'une tel carte ?
Ou bien tous les calculs sont-il fait par le processeur ?

Lorsque que fait dans un terminal "glxgears" pour tester le nombre de frame, j'obtiens des chiffres supérieur a 30000.
Je pense (il est vrai que j'y connais rien en 3D) que ton code n'utilise pas l'accélération matérielle ! :oops:

A + :wink:


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 17 messages ]  Aller à la page 1, 2  Suivante

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