Transparenz - Geschwindigkeit

Status
Nicht offen für weitere Antworten.
Ich arbeite derzeit an einem Spiel das eine isometrische Map verwendet. Aufgrund der isometrie gibt es relativ viel transparenz in meinen tiles (4 ecken + noch etwas nach oben um 'hohe' gebäude und einheite zu rendern).

Im moment läuft das Spiel und linux halbwegs flüssig (unter windows nicht, siehe meinen zweiten thread weiter unten), jedoch habe ich vor weitere images über vorhandene drüber zu rendern die einen bestimmten Status eines Gebäudes oder einer Einheit anzeigen sollen.

Und da ich am liebsten überall die gleichen tile sizes verwenden möchte (da erspare ich mir sehr viel aufwand), würden diese tiles zum größten teil transparent sein.

So, nun würde ich gerne wissen wie stark sich vollkommene transparenz auf die rendergeschwindigkeit auswirkt? (Teil-transparenz verlangsamt das spiel extrem, das hab ich schon gelernt). Falls die Transparenz ein Problem ist, gibt es irgendeine Möglichkeit den Geschwindigkeitsverlust durch transparenz irgendwie zu vermindern?
 

Wildcard

Top Contributor
Bei Images ist immer die Frage, ob es sich um Compatible Images handelt, oder nicht.
Nur Compatible Images können von der Hardwarebeschleunigung profitieren.
Derzeit ist dies nur bei Bitmasken Transparenz möglich, demzufolge sollte man ein geeignetes ColorModel verwenden.
 
Code:
// Create a BufferedImage adapted to the users environment.
		final GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
		final GraphicsDevice d = e.getDefaultScreenDevice();
		final GraphicsConfiguration c = d.getDefaultConfiguration();

		final BufferedImage newimg = c.createCompatibleImage(img.getWidth(), img.getHeight(), Transparency.BITMASK);
		final Graphics2D g2d = newimg.createGraphics();
		g2d.setComposite(AlphaComposite.Src);
		g2d.drawImage(img, 0, 0, img.getWidth(), img.getHeight(), null);
		g2d.dispose();

		return newimg;

So speichere ich jetzt das geladene png und verwende es dann zum rendern weiter. So komme ich auf ~40fps. Schalte ich die transparenz ab (also BufferedImage.TYPE_INT_RGB) komme ich auf ~110.

Was mache ich noch falsch, oder schaft mein System einfach die transparenz nicht (was nicht wirklich sein kann da spiele sonst sehr gut auf meinem rechner laufen)?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Transparenz wird magenta Spiele- und Multimedia-Programmierung 3
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
F OpenGL - Transparenz mit Depth Peeling Spiele- und Multimedia-Programmierung 0
aze Java3D:Farbige Flächen verschwinden lassen(Transparenz- oder Colorinterpolator?)) Spiele- und Multimedia-Programmierung 5
BattleMaster246 OpenGL - Transparenz Spiele- und Multimedia-Programmierung 10
I JOGL: Problem mit Blending bei Billboards (Transparenz) Spiele- und Multimedia-Programmierung 2
L Java 3 D - Transparenz einzelner Punkte Spiele- und Multimedia-Programmierung 6
Z Transparenz in BufferedImage Spiele- und Multimedia-Programmierung 8
G Punkt in Image auf Transparenz prüfen Spiele- und Multimedia-Programmierung 6
G png transparenz geschwindigkeitsproblem Spiele- und Multimedia-Programmierung 2
L Skalierung von Bildern mit Transparenz Spiele- und Multimedia-Programmierung 7
S Fehlerhafte Darstellung durch Transparenz? Spiele- und Multimedia-Programmierung 8
D 2 Texturen & transparenz Spiele- und Multimedia-Programmierung 16
S transparenz per paint()-methode will nicht Spiele- und Multimedia-Programmierung 12
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
F Einen Sound mit veränderter Tonhöhe und Geschwindigkeit abspielen - Hilfe erbeten Spiele- und Multimedia-Programmierung 29
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
E konstante Geschwindigkeit Spiele- und Multimedia-Programmierung 7
G gleiche Geschwindigkeit Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Neue Themen


Oben