Page 1 sur 1

Dessiner un Point

Publié : sam. 04/mars/2006 20:58
par TersaKen
Sous cette bete question se cache une veritable question.
Si on considere que ma fonction qui me permet d'afficher les faces pleines d'un cube travaille pixel par pixel ( encore une fois pour la gestion d'un ZBuffer ) et qu'une face de ce Cube auparavent créé par mes soins rempli l'ecran, avec un resolution de 800*600 on aura 480 000 pixel a afficher.
Et PB m'affiche une jolie fps de 2, ce qui peut sembler normal !
Mais j'aimerais savoir si il y a un moyen d'afficher un point a l'ecran de façon plus rapide, par exemple en ecrivant directement dans la memoire video, ou qq chose du genre ... Je ne sais pas si je suis clair, mais je suis preneur de toute solution.

merci d'avance.

Publié : sam. 04/mars/2006 21:43
par Anonyme
Tu as un code?
Car en utilisant les commandes de bases sans aucunes optimisation, ca s'affiche plutot vite.

Code : Tout sélectionner

InitSprite() : InitKeyboard()

OpenScreen(800,600,32,"")


Global StartTime.l,EndTime.l,MS.l
Global FPS.l,CounterFPS.l,FPSTICK.l

Repeat
ExamineKeyboard()
ClearScreen(RGB(0,0,0))


If CounterFPS < ElapsedMilliseconds()
FPS = FPSTICK
FPSTICK=0
CounterFPS= ElapsedMilliseconds() + 1000
EndIf
FPSTICK=FPSTICK+1

StartTime = ElapsedMilliseconds()
StartDrawing(ScreenOutput())
For y = 0 To 600-1 Step 1
For x = 0 To 800-1 Step 1
Plot(x,y,RGB(255,100,50))
Next : Next

DrawText(0,0,"MS : " +Str(MS))
DrawText(0,15,"FPS : " +Str(FPS))
StopDrawing()

FlipBuffers()
EndTime = ElapsedMilliseconds()
MS = EndTime - StartTime

Until KeyboardPushed(#PB_Key_Escape)

Publié : sam. 04/mars/2006 21:56
par wolfjeremy
Salut, c'est les initials de quoi MS ? :oops:

Publié : sam. 04/mars/2006 22:06
par Anonyme
MilliSeconds :D

Publié : sam. 04/mars/2006 22:35
par wolfjeremy
Ha ok lol

merci :D

Publié : sam. 04/mars/2006 23:11
par Dr. Dri
C'est pas plutot MicroSoft ? :P
Regarde du côté de "drawingbuffer"

Dri

Publié : sam. 04/mars/2006 23:47
par TersaKen

Code : Tout sélectionner

InitSprite()
InitKeyboard()

If OpenScreen(800,600,32,"essai") = 0 : End : EndIf

Repeat

  If Val(FormatDate("%ss", Date()))=sek
    FPS+1
  Else
    FPS$=Str(FPS)
    FPS=0
  EndIf
  sek=Val(FormatDate("%ss", Date()))

 StartDrawing(ScreenOutput())


 For y = 0 To 599
    For x = 0 To 799
      Plot(x,y,RGB(255,0,0))
     Next x
    Next y  
    
    DrawingMode(1)
    FrontColor(255,255,255)
    Locate(1,1)
    DrawText("FPS: "+FPS$)
    
    
   StopDrawing() 
   
   FlipBuffers() 

 ExamineKeyboard()


Until KeyboardPushed(#PB_Key_Escape)
ça tourne environ a 12 fps, mais si je n'avais pas specifié la couleur du Point, ( je pensais que ça ecrivait en noir par default ) ça tourne a une image par seconde, voir deux !

Publié : jeu. 09/mars/2006 12:05
par Anonyme
Tu as enlever le debugger?