DrawTranslucidImage() - durch Bank "viel" schnelle
Übersicht

KekskillerBetreff: DrawTranslucidImage() - durch Bank "viel" schnelle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So Leute, ich hatte vorhin einen Geistesblitz und hab das bis jetzt mit
Abstand geilste von mir erschaffen, eine Bild-Zeichnen-Funktion mit Transparenzangabe ![]() und schnelles system. Ich weiß garnicht, was ich dazu sagen soll, seht euch einfach an. Ich finde meine Schöpfung einfach: ![]() EDIT: Unten ist ein schnellerer Code, als der obrige... BlitzBasic: [AUSKLAPPEN] ;DrawTranslucidImage() - Transparente Bilder darstellen Mann, ich bin sowas von happy deswegen, das glaubt ihr garnicht! Endlich mal was gescheites vom Mürbegebäck ![]() |
||
- Zuletzt bearbeitet von Kekskiller am So, Sep 26, 2004 19:39, insgesamt 4-mal bearbeitet
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab bei nem 250x350 bild ganze 3 fps - so schnell oder besonders ist es also nicht ![]() (Athlon 64 3400+, Radeon9800pro) ![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ausser einem schwarzen Bildschirm,
hat es bei mir noch nichts gemacht, könnte das bei einem P3-900 noch etwas dauern? |
||
solitaire |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, ganze Leistung.
Ist glaube ich das erste Mal, das man in Blitzbasic 2D sowas wie 'n Transparenzwert benutzen kann. Ich hab bisher immer nur so Sachen mit Halbdurchsichtig geschafft. Aber für Echtzeit Sachen ist das glaub ich zu langsam. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das kann und wird so nie funktionieren.
Da ist ein Dual LockBuffer, das killt die Hardware. Um es schnell zu machen, schreibst du am besten noch ein "LoadTranslucideImage( path$)" welches die Bilddaten in eine Bank ladet und den Bankhandle zurück gibt und dann übergibt man diesen Bankhandle an DrawTranslucideImage. Dann müsste es beträchtlich schneller sein. Lockbuffer ist etwas was auf PreShader karten allgemein sehr auf die Performance schlägt, bei 2 Buffern gleichzeitig verabschiedet sich dann alles. Hoffe du kannst mit der Idee das System zu ungeahnten Höhenflügen bringen ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn man so große Bilder nimmt, ist es ja auch kein Wunder...
Transparenz kann man eben nicht realtime bekommen, wenn man es direkt in Blitz-Code ntegriert. Und zu der Sache mit langsamen Pc's: Ich habe einen Pentium I, und bei mir läuft für solch ein Unterfangen schon sehr schön. Man kann damit zum Beispiel prima Sprites oder so einfärben, Schatten in entsprechender Farbe vom Original machen und mit angegebener Transparenz drüberziehen. Schon hat man ein eingetöntes Bild. @Triton: Für mich ist das schon ganz schön schnell ![]() Ne, ist jetzt nicht sooo schnell, aber immerhin hab ichs hinbekommen ^_^ ! @Soli: Hm, komisch. Bei mir funktioniert alles eingbahnfrei. Falls du Blitz2D und nicht Plus, oder 3D hast, dann leigt es wohl daran, dass du bei den Maskierungen den Alpha-Wert entfernen musst. Der ist meines Wissens beim alten Blitz2D nicht dabei. @Draemora: Hey, gute Idee. Werde ich gleich mal ausprobieren. Wusste nicht, dass Locken und Unlocken soviel runterzieht... Werds mal so machen. |
||
Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kekskiller hat Folgendes geschrieben: @Soli: Hm, komisch. Bei mir funktioniert alles eingbahnfrei.
Falls du Blitz2D und nicht Plus, oder 3D hast, dann leigt es wohl daran, dass du bei den Maskierungen den Alpha-Wert entfernen musst. Der ist meines Wissens beim alten Blitz2D nicht dabei. Ab Version 1.53 ist der Alphakanal vorhanden und bei mir funktionierts auch mit B2D. |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann hats wohl mit dem doppelten Lockbuffer zu tun.
Bin gleich fertig... |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tada, jetzt ist es wirklich einige mal schneller.
Habs mal auch mit Tricorns großem Bild ausprobiert, waren vorher wirklich so wenig... Jetzt sind einige Frames mehr als vorher, auf jeden Fall mehr 10... BlitzBasic: [AUSKLAPPEN] ;TranslucidImage - by Kekskiller LoadTranslucidImage$(file$) Läd ein Bild aus einer Datei in eine Bank. ConvertImageToTranslucid$(picture) Konvertiert ein bereits im Speicher zu einer Bank um. DrawTranslucidImage(bank,mred,mgre,mblu,ox,oy,t#,centerx=0,centery=0) Gibt das Bank-Bild auf dem Bildschirm aus. mred, mgre und mblu sind die Maskierungswerte für Rot, Grün und Blau. Soweit hätte ich da jetzt keine Idee, was man da noch so dran werkeln könnte... Würde sagen, das ist erstmal fertig ![]() aber wie immer nicht für Realtime... Egal, werde ich mal ne Dll draus machen, falls ich mal wieder überflüssig viel Zeit habe ![]() |
||
- Zuletzt bearbeitet von Kekskiller am So, Sep 26, 2004 21:09, insgesamt 2-mal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da hats noch was kleines was eventuell helfen könnte
out = Graphicsbuffer() -> vielleicht durch out = BackBuffer() ersetzen und das programm auf 2 buffer basis laufen lassen ... dadurch kann die grafikkarte überschüssige zeit für vorberechnen neuer daten verwenden. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Juchu, noch ein paar Fps mehr ^_^ !
Danke, Draemora, dank dir ist daraus noch was ersnthaftes geworden. Jetzt muss ichnur noch eine Verwendung dafür finden ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group