Dessiner un Point

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
TersaKen
Messages : 58
Inscription : dim. 05/févr./2006 16:15

Dessiner un Point

Message 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.
Anonyme

Message 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)
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Salut, c'est les initials de quoi MS ? :oops:
Anonyme

Message par Anonyme »

MilliSeconds :D
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ha ok lol

merci :D
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

C'est pas plutot MicroSoft ? :P
Regarde du côté de "drawingbuffer"

Dri
TersaKen
Messages : 58
Inscription : dim. 05/févr./2006 16:15

Message 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 !
Anonyme

Message par Anonyme »

Tu as enlever le debugger?
Répondre