Lichtquellen - Funktionen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

TheProgrammer

Betreff: Lichtquellen - Funktionen

BeitragMi, Jul 14, 2004 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Mit den zwei Funktionen kann man Bilder mit einer
(oder mehreren) Lichtquelle(n) zeichnen.

UpdateLightImage(lightX%,lightY%,entf%,img,imgX%,imgY%,[frame%])

Mit UpdateLightImage zeichnet man den Lichtkegel,
eines Images.

Parameter:

lightX% - gibt die X-Position des Lichtkegels an
lightY% - gibt die Y_Position des Lichtkegels an
entf% - gibt den Radius des Lichtkegels an
img - gibt das Image an, welches gezeichnet werden soll
imgX% - gibt die X-Position des images an
[frame%] - gibt den Frame des Images an

Diese Funktion liefert keinen Wert zurück.

UpdateLightImageRect(lightX%,lightY%,entf%,img,imgX%,imgY%,x1%,y1%,x2%,y2%,[frame%])

Mit UpdateLightImageRect zeichnet man den Lichtkegel,
eines Abschnittes eines Images.

Parameter:

lightX% - gibt die X-Position des Lichtkegels an
lightY% - gibt die Y_Position des Lichtkegels an
entf% - gibt den Radius des Lichtkegels an
img - gibt das Image an, welches gezeichnet werden soll
imgX% - gibt die X-Position des images an
x1% - Anfangsposition (X) des Abschnittes
y1% - Anfangsposition (Y) des Abschnittes
x2% - Breite des Abschnittes
y2% - Höhe des Abschnittes
[frame%] - gibt den Frame des Images an

Diese Funktion liefert keinen Wert zurück.



PS: Ich habe die Grafikauflösung mit Absicht so schlecht
gemacht, damit der Speed etwas hochgeschraubt wird.
(muss noch verbessert werden)

Download
aktuelles Projekt: The last day of human being
 

Edlothiol

BeitragMi, Jul 14, 2004 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja. Der Bereich sieht nicht sonderlich gut aus (kein richtiger weicher Übergang), ausserdem ist es ziemlich langsam. Zum Optimieren schon alleine:
- LockBuffer
- Die Entfernung zwischenspeichern (4mal Sqr ist böse)
- Es ist seehr viel schneller, das Bild vorher zwischenzuspeichern (in eine Bank).
- Anstatt /$100 solltest du besser Shr 8 schreiben usw.
- Auch statt *$100 würde ich Shl 8 schreiben, sogar für *2 könntest du Shl 1 schreiben (allerdings glaube ich nicht, dass das sich bei der Geschwindigkeit bemerkbar machen würde)
- Ich weiß nicht genau wieviel das macht, aber dauernd SetBuffer ist auch nicht gut... das ließe sich auch mit einer Bank beheben.
- Wenn die Lichtgröße konstant ist, kannst du auch die eigentlichen Helligkeitswerte in einer Bank speichern. Damit ließe sich auch Sqr beseitigen.
Die größte Speedbremse dürfte da wirklich ReadPixel sein, entsprechend wird eine Bank einiges an Speed bringen. Sqr ist auch sehr langsam.

Du solltest da wirklich noch viel optimieren, bevor es benutzbar ist.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group