Gibt es einen Grund für 16x16 anstatt z.B. 15x15 Tiles ?

JaEmiX

Mitglied
Hallo,

mir is aufgefallen das ist allen Tutorials die ich gesehen habe, Tiles genutzt werden die 16x16, 32x32 oder 64x64 pixel groß sind, Minecraft ist da auch ein gutes Beispiel.
Warum ist das so? Gibt es da einen performance technischen Grund oder warum sind die nicht auch z.B 15x15 oder 53x53 groß?

lieber Grüße
 

Thallius

Top Contributor
Weil das alles vielfache eines Bytes sind und damit vom Prozessor viel schneller verarbeitet werden können. Du solltest dich vielleicht einfach mal die Grundlagen der Computertechnik einlesen. Dann wird vieles klarer.
 

Gaaammmler

Neues Mitglied
Wie ist das denn wen man ein großes Spritesheet 1024x1024 nutzt und dieses in den Grafikarten Puffer schreibt(2d Spiel) und davon dann die Tile Texturen von z.B. 30 x 30 nimmt(bestimmt durch Rechteck auf diesem Bild), gibts da einen Unterschied oder ist es in diesem Fall egal?
 

White_Fox

Top Contributor
Der "Prozessor" deiner Grafikkarte besteht im Wesentlichen aus wahnsinnig vielen kleinen Einzelprozessoren, die parallel und jeder für sich rechnen, wobei eine einzelne Recheneinheit nicht sonderlich schnell oder leistungsfähig ist. Erst wenn du Berechnungen in sehr viele unabhängige Teilrechnungen zerlegen kannst (was bei Grafikanwendungen typischerweise der Fall ist), macht der Einsatz einer Grafikkarte überhaupt Sinn.

Jedes Pixel ist im Wesentlichen das Ergebnis einer Kette von Operationen. Wenn du eine "bytekompatible" Länge hast (8, 16, 32, 64, ...), kann man die meisten Rechenoperationen mit recht einfachen Operationen wie UND und ODER erschlagen. Außerdem werden die Recheneinheiten am effizientesten ausgenutzt. Wenn wir mal annehmen, daß die Recheneinheiten (ALUs) intern mit 16 Bit arbeiten, dann kann ein 16 Pixel breites Tile bequem von einer ALU gerechnet werden. Wenn das Tile 32 Pixel breit ist, dann brauchst du zwei ALUs.

Wenn du jetzt aber z.B. ein 35 Pixel breites Tile willst, dann brauchst du drei ALUs, wobei aber eine ALU bloß zwei Pixel rechnet und damit nur zu 2/16 * 100% ausgelastet ist. Meist lebt man mit 32 Pixeln dann besser, ist ja nur geringfügig kleiner, aber dafür ist das Bild schneller/effizienter berechnet. Insbesondere für Handyanwendungen, die auf schwachbrüstiger Sparhardware laufen, ist das gut.


Das ist jedenfalls daß, was mir aufgrund meines Halbwissens über Hardware als mögliche Erklärung einfällt. Ich weiß zwar ein wenig über den Aufbau von Hardware, aber Leute die z.B. OpenGL oder ähnliches geschrieben haben wissen da ganz sicher weitaus besser Bescheid.
 

JaEmiX

Mitglied
Der "Prozessor" deiner Grafikkarte besteht im Wesentlichen aus wahnsinnig vielen kleinen Einzelprozessoren, die parallel und jeder für sich rechnen, wobei eine einzelne Recheneinheit nicht sonderlich schnell oder leistungsfähig ist. Erst wenn du Berechnungen in sehr viele unabhängige Teilrechnungen zerlegen kannst (was bei Grafikanwendungen typischerweise der Fall ist), macht der Einsatz einer Grafikkarte überhaupt Sinn.

Jedes Pixel ist im Wesentlichen das Ergebnis einer Kette von Operationen. Wenn du eine "bytekompatible" Länge hast (8, 16, 32, 64, ...), kann man die meisten Rechenoperationen mit recht einfachen Operationen wie UND und ODER erschlagen. Außerdem werden die Recheneinheiten am effizientesten ausgenutzt. Wenn wir mal annehmen, daß die Recheneinheiten (ALUs) intern mit 16 Bit arbeiten, dann kann ein 16 Pixel breites Tile bequem von einer ALU gerechnet werden. Wenn das Tile 32 Pixel breit ist, dann brauchst du zwei ALUs.

Wenn du jetzt aber z.B. ein 35 Pixel breites Tile willst, dann brauchst du drei ALUs, wobei aber eine ALU bloß zwei Pixel rechnet und damit nur zu 2/16 * 100% ausgelastet ist. Meist lebt man mit 32 Pixeln dann besser, ist ja nur geringfügig kleiner, aber dafür ist das Bild schneller/effizienter berechnet. Insbesondere für Handyanwendungen, die auf schwachbrüstiger Sparhardware laufen, ist das gut.


Das ist jedenfalls daß, was mir aufgrund meines Halbwissens über Hardware als mögliche Erklärung einfällt. Ich weiß zwar ein wenig über den Aufbau von Hardware, aber Leute die z.B. OpenGL oder ähnliches geschrieben haben wissen da ganz sicher weitaus besser Bescheid.

super danke dir.

Es war eigentlich so das ich genau das dem
Gaaammmler
gesagt hatte aber es nicht so technisch erklären konnte.

Danke schön für diese mega Antwort :)!
 

JuKu

Top Contributor
Noch eine kleine Ergänzung zu @White_Fox sehr kompetenter Antwort:
Soweit ich weiß, besitzen die Grafikkarten auch kleinere "Execution Units", die wohl genau 32x32 Pixel groß sind und den selben Code verwenden --> so viele Pixel verarbeitet quasi eine "Execution Unit" (ich glaube die hießen in Wirklichkeit "Warps") gleichzeitig.

Wenn man jetzt weniger als 32x32 Pixel nutzt oder kein Vielfaches von 32, dann wird die Performance dahingehend etwas einbrechen, dass die Grafikkarte ihre Warps nicht voll nutzen kann.
Beispiel: 33x33 Pixel --> man braucht 4 Warps (also 64x64 Pixel) --> man nutzt aber nur 1.089 von den 4.096 Pixeln, d.h. man hat einen (Performance-) "Verlust" von 73%.
Dazu kommen die vielen Gründe, die @White_Fox schon alle genannt hat.

Noch 2 Links dazu:
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
B Gibt einen JComboButton? AWT, Swing, JavaFX & SWT 3
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
apple_pie1998 Programm gibt plötzlich exceptions aus. AWT, Swing, JavaFX & SWT 4
D AWT Graphics2D getClip gibt null zurück AWT, Swing, JavaFX & SWT 3
C JOptionPane.showConfirmDialog() -> Focus auf NEIN -> Enter gibt YES_OPTION zurück AWT, Swing, JavaFX & SWT 6
I JComboBox gibt bei ausgewählten ITem NullPointer an... AWT, Swing, JavaFX & SWT 3
Z Gibt es alternativen zu Swing und AWT, Swing, JavaFX & SWT 4
C Swing JComboBox, ItemListener gibt 2x aus AWT, Swing, JavaFX & SWT 2
M JTextField gibt beim auslesen null aus AWT, Swing, JavaFX & SWT 9
J Gibt es brauchbare GUI-Builder, oder doch besser alles per Hand machen? AWT, Swing, JavaFX & SWT 6
P gleichanfangende Zeilen solange auslesen bis es die gibt AWT, Swing, JavaFX & SWT 12
K 2D-Grafik interstectsLine gibt immer false zurück AWT, Swing, JavaFX & SWT 18
R Swing JLabel gibt stets 'null' aus AWT, Swing, JavaFX & SWT 3
D System.out.println() gibt html-Tags mit aus AWT, Swing, JavaFX & SWT 2
D Funktion JList.getSelectedValues() gibt nicht alle values zurück AWT, Swing, JavaFX & SWT 2
J Welche Fallstricke gibt es bei TreeTables in SWT/JFace AWT, Swing, JavaFX & SWT 3
G Gibt es diese Komponente? AWT, Swing, JavaFX & SWT 11
T Swing Gibt es eine Komponente für eine farbliche Editorbox? AWT, Swing, JavaFX & SWT 6
F JComboBox gibt falsche werte AWT, Swing, JavaFX & SWT 3
S JDialog gibt keine Nachrichten ueber sein Schliessen..? AWT, Swing, JavaFX & SWT 3
J Gibt es in Java ein mehrspaltiges Listenfeld? AWT, Swing, JavaFX & SWT 6
K Gibt es AWT- und Swing-ActionListener ? AWT, Swing, JavaFX & SWT 3
R Gibt es Pulldown-Buttons in Swing? AWT, Swing, JavaFX & SWT 5
J Gibt es ein OutlookTabbedPane für Java ? AWT, Swing, JavaFX & SWT 9
G Gibt's in Swing oder AWT sowas wie ein Gruppenfeld? AWT, Swing, JavaFX & SWT 3
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
V Gibt es eine JButtonBar? AWT, Swing, JavaFX & SWT 3
S JList gibt nach Sortierung mit Collections keine Anzahl mehr AWT, Swing, JavaFX & SWT 3
S getSize gibt keine Größe wieder AWT, Swing, JavaFX & SWT 4
V Wie heisst dieses GUI-Element? Gibt es sowas für Swing? AWT, Swing, JavaFX & SWT 10
N JComponent#getClientProperty(key) welche Schlüssel gibt es? AWT, Swing, JavaFX & SWT 3
G Gibt es soetwas wie setPreferredWidth() für JTextPane? AWT, Swing, JavaFX & SWT 3
F gibt etwas wie frames in html auch in java? AWT, Swing, JavaFX & SWT 19
P ProgressMonitor - isCanceled gibt immer false zurück AWT, Swing, JavaFX & SWT 2
I Grafikfilter => welche gibt es und wie einsetzen AWT, Swing, JavaFX & SWT 7
C getIcon für ein File das es nicht gibt? AWT, Swing, JavaFX & SWT 2
S Gibt es sowas wie SwingEvent? AWT, Swing, JavaFX & SWT 6
R drawLine gibt hässliche linie AWT, Swing, JavaFX & SWT 4
A KeyPressed gibt mir immer 0 AWT, Swing, JavaFX & SWT 8
J Gibt es eine Methode die mir die Javaversion zurück gib ? AWT, Swing, JavaFX & SWT 2
G Gibt es eine Klasse für Syntax highlighting? AWT, Swing, JavaFX & SWT 3
S Gibt es eine Möglichkeit???? AWT, Swing, JavaFX & SWT 2
MiMa Reaktion auf einen SplitScreenTrenner? AWT, Swing, JavaFX & SWT 2
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
Z Mit einem Button einen anderen Button Triggern AWT, Swing, JavaFX & SWT 3
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
J Schriftart über einen Button ändern AWT, Swing, JavaFX & SWT 1
J Genutzte Methoden in einen Frame einbauen AWT, Swing, JavaFX & SWT 21
P Wie lese ich einen jRadioButton aus? AWT, Swing, JavaFX & SWT 21
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4
S Swing GANZE Row auf einen Schlag einfärben AWT, Swing, JavaFX & SWT 2
B JavaFX Wie programmiere ich hier einen "Weiter" Button? AWT, Swing, JavaFX & SWT 11
P Einer JList mit eigenem ListModel einen Eintrag hinzfügen AWT, Swing, JavaFX & SWT 5
L Wie realisiere ich einen Controller AWT, Swing, JavaFX & SWT 1
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
F JavaFX Erstelle einen Wald AWT, Swing, JavaFX & SWT 6
Thallius Swing Aufgabe für einen der gerne Tüftelt. AWT, Swing, JavaFX & SWT 4
M JavaFX Wie füge ich zu einer WebEngine einen Flash Player hinzu AWT, Swing, JavaFX & SWT 3
G AWT Wie bekomme ich einen zeitgesteuerten robot hin? AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
B SWT Problem: Wie kann man für jede TableColumn einen eigenen KeyListener registrieren. AWT, Swing, JavaFX & SWT 1
S Bei BoxLayout haben hinzugefügten Jpanels einen Versatz/Space AWT, Swing, JavaFX & SWT 0
D Graphics2D einen Bereich füllen AWT, Swing, JavaFX & SWT 1
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
M Swing Mit Java in der GUI einen Belegungsplan einfügen AWT, Swing, JavaFX & SWT 23
P Swing Panel-austausch über einen MenuListener AWT, Swing, JavaFX & SWT 2
H Swing Hintergrundbild in einen JFrame einfügen AWT, Swing, JavaFX & SWT 7
K 2D-Grafik Kontrastanpassung über einen JSlider AWT, Swing, JavaFX & SWT 2
E Warum macht die einfache Animation einen kleinen Fehler? AWT, Swing, JavaFX & SWT 14
A Swing JTextField durch einen JButton leeren AWT, Swing, JavaFX & SWT 15
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
P Swing RadioButtons - nur einen auswählen AWT, Swing, JavaFX & SWT 3
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
J JFrame in einen JFrame anzeigen AWT, Swing, JavaFX & SWT 2
L Mehre Panels einen Frame zuweisen AWT, Swing, JavaFX & SWT 11
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
Madlip SWT Tree mit einen Klick alles ausklappen AWT, Swing, JavaFX & SWT 3
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
M JProgressBar für einen Thread AWT, Swing, JavaFX & SWT 14
T Einen Kreis anzeigen AWT, Swing, JavaFX & SWT 14
M SWT /Jface Wann einen ColumnLabelProvider benutzen? AWT, Swing, JavaFX & SWT 2
-horn- WorldWindJava+JOGL soll einen animierten Graphen anzeigen, wie? AWT, Swing, JavaFX & SWT 4
X Einem JFrame einen Dialog als Parent setzen. Möglich? AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben