Image teilweise transparent malen

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

stepuh

Betreff: Image teilweise transparent malen

BeitragFr, Jun 24, 2011 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe folgendes vor und möchte wissen, ob es überhaupt geht:

Wenn ich ein Bild zeichne (in meinem Fall ein tile) dann möchte ich jedes mal unterschiedliche
Bereiche davon transparent malen können.
Dh. also: einmal möchte ich eine Ecke transparent haben, danach in der Mitte und später eine andere Ecke.

eine entsprechende Funktion sollte so aussehen können:
Code:

drawTransparentImage(image, transparentStartX, transparentStartY, transparentWidth,transparentHeight)


Nun möchte ich aber nicht jedes mal wenn ich male eine pixmap erstellen und dort 'schnell' die transparenten Bereichere reinmalen.
Ich meine, dass das nur recht langsam ginge und nicht laufzeittauglich wäre.
Oder irre ich mich hier und pixmap malen ist doch schnell genug?

Gibt es evtl. eine Alternative?
Beispielsweise hatte ich folgende Idee:
Ich nehme eine art Heightmap zur hilfe - nur dass die Graustufen hier für die Transparenzwerte stehen.
Gibt es eine Möglichkeit, soetwas umzusetzen?

Danke
stepuh
http://www.web13.shells24.de/banner.png

Lord Stweccys

BeitragFr, Jun 24, 2011 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Am einfachsten wäre das in OpenGL umzusetzen mit der glColor4_ Befehlsreihe,
dazu musst du allerdings mit einem OpenGl-Max2d- oder nur einem OpenGl-Treiber arbeiten.

mpmxyz

BeitragFr, Jun 24, 2011 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest, wenn es dir nur um rechteckige Bereiche geht, auch DrawImageRect zusammen mit SetAlpha nutzen.
Ansonsten könntest du, wenn du nicht zu viele Alphamaps hast, für jede Alphamap+Bild-Kombination einmal ein Bild generieren und das dann nutzen. (Das lässt sich so weit optimieren, dass nur die benötigten Kombinationen gespeichert werden.)
Außerdem fällt mir eine Möglichkeit ein, wie man so etwas mit Shadern machen könnte, wenn du unbedingt auf getrennte Alphamaps bestehst. (Max2D stellt aber keine eingebaute Möglichkeit dazu zur Verfügung. -> umständliche Lösung)
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
 

stepuh

BeitragFr, Jun 24, 2011 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
nun eigentlich ging es mir darum, in max2d folgendes zu simulieren:
in b3d kann ich eine fläche, bestehend aus vielen vertices, erstellen und eine texture drüber ziehen.
setze ich nun die alpha-werte einiger vertices herunter, bekommt die fläche dort ein "transparentes loch".
http://www.web13.shells24.de/banner.png

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group