Leuchtkegelalgorithmus

Übersicht BlitzBasic Allgemein

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

lettorTrepuS

BeitragSo, Sep 12, 2004 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

rambo256

BeitragSo, Sep 12, 2004 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Gott,könntet ihr euch nicht im offtopic über diese Weltbewegende Frage streiten und nicht "meinen" Thread mit offtopicgelaber zumüllen Question Exclamation


Sry,aber ist doch wahr Exclamation Exclamation Exclamation
Asus F53z

Das Leben ist eine reine Konkatenation...
 

lettorTrepuS

BeitragSo, Sep 12, 2004 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

rambo256

BeitragSo, Sep 12, 2004 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
habe ich auch nicht,einen post vor dir hab ich schon gesagt,das ich mein Problem gelöst habe Wink
Aber ich will dir jetzt nicht für deine Mühen die kalte Schulter zeigen.
Vielen Dank,aber ich habe das was du mir zeigen wolltest in 2 Zeilen erledigt Wink
Asus F53z

Das Leben ist eine reine Konkatenation...
 

lettorTrepuS

BeitragSo, Sep 12, 2004 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

rambo256

BeitragMo, Sep 13, 2004 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
So,da ich nun den Lichtkegel und so fertig habe,möchte ich nun,das ich diesen auch drehen kann. Also das man jetzt praktisch wie bei einer Taschenlampe den Kegel um seine eigene Achse rotieren lassen kann.
Mir ist schon klar,das ich da was mit cos und sin was an der Schleife verändern muss,aber wo?
Hab schon viel rumprobiert aber es hat nicht so wirklich was geklappt. Crying or Very sad

hier der Code der Funktion:

Code: [AUSKLAPPEN]
Function DrawImagealpha(image,ix,iy,bx#,by#,frame,alpha#,angle#)


  EditorBufferAlphaImg = CreateImage(bx,by)
  SetBuffer ImageBuffer(EditorBufferAlphaImg)
  DrawImage image,0,0,frame
  SetBuffer BackBuffer()

  LockBuffer ImageBuffer(EditorBufferAlphaImg)
  LockBuffer BackBuffer()


;-------------------------------------------------------------------------------
m# = Float((bx#/2)/by#)



For y# = by To 0 Step -1
   For x# = ((by-y#)*m) To (y#*m) Step 1
     

     BackPx= ReadPixelFast((ix+x),(iy+y),BackBuffer())
      AlphaPx= ReadPixelFast(x,y,ImageBuffer(EditorBufferAlphaImg))

      br = (BackPx And $FF0000) Shr 16
      bg = (BackPx And $00FF00) Shr 8
      bb = (BackPx And $0000FF)

      ar = (AlphaPx And $FF0000) Shr 16
      ag = (AlphaPx And $00FF00) Shr 8
      ab = (AlphaPx And $0000FF)

      r%=br+alpha#
      g%=bg+alpha#
      b%=bb+alpha#

   If r >= 255 Then
      r = 255
   EndIf
   
   If g >= 255 Then
      g = 255
   EndIf
   
   If b >= 255 Then
      b = 255
   EndIf
   
   If r+g+b >= 765 Then
      r= 255
      g= 255
      b= 255
   EndIf   
   
      RGB = (r Shl 16) + (g Shl 8) + b
      WritePixelFast(x#,y#,RGB,ImageBuffer(EditorBufferAlphaImg))

    Next
  Next

  UnlockBuffer BackBuffer()
  UnlockBuffer ImageBuffer(EditorBufferAlphaImg)
  MaskImage EditorBufferAlphaImg, 0,0,0
  DrawImage EditorBufferAlphaImg,ix,iy
  FreeImage EditorBufferAlphaImg

End Function



Wäre sehr dankbar für eure Hilfe.
THX!
Asus F53z

Das Leben ist eine reine Konkatenation...
 

Apocalyptic

BeitragMo, Sep 13, 2004 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, deine Funktion ist aber nicht für Realtimeeffekte gedacht, oder? Wenn doch, dann ist Createimage in jeder Schleife tödlich, und man könnte auch sonst noch einiges optimieren. Wofür erstellst du überhaupt ein Bild, zeichnest was ein, zeichnest das Bild in den Backbuffer und dann löschst du es? Da kannst du doch gleich in den Backbuffer schreiben.

Hab mir den Code nicht genau angeguckt, deswegen kanns sein, dass ich mich irre. Wenn du das Bild wirklich brauchst, kannst du das ja auch im Vorraus drehen. Ansonsten sollte dir jedes sin/cos Tutorial weiterhelfen.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

rambo256

BeitragMo, Sep 13, 2004 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja es ist in Realtime gedacht.Ja ich denke da kann man noch was verbessern,das stimmt.Läuft aber auch so schon schnell (so ca. 70-80 FPS,werde das aber so machen das es vorberechnet wird und wenn da sich der SPieler drin bewegt,dann wird es erst erneuert)
zu sin und cos: Ich hab schon so viel ausprobiert aber ich weiß nicht so recht wo ich das hinpacken soll Crying or Very sad
Asus F53z

Das Leben ist eine reine Konkatenation...
 

Dreamora

BeitragMo, Sep 13, 2004 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal ne kleine Frage:

Verwendest du Blitz2D oder Blitz3D?
Weil in Blitz3D gäbe es einen ziemlich extremen vereinfachungstrick der vor allem auch Drehung des Kegels zulässt ohne dass dafür massig zeit drauf geht. ( über nen Quad mit der Lichtkegeltextur und TextureBlend 5 )


ansonsten

x = cos(winkel) * Radius
y = sin(winkel) * Radius
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group