GELÖSCHT
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Bestimmte Größen von Texturen? (2D)
Soweit ich weiß macht das gerade bei neueren Grafikkarten nichts aus. Und mit "neu" meine ich auch schon recht alte. 

Re: Bestimmte Größen von Texturen? (2D)
Auch wenn der Thread nicht brandaktuell ist:
Ich bin gerade etwas irritiert... Du sprichst von Texturen und 2D gleichzeitig. Nutzt Du nur die Sprite Library oder auch Sprite3D?
Grundsätzlich sei erwähnt, dass es Assemblertricks gibt, um bei 2er-Potenzen mit zweckentfremdeten ASM-Befehlen manche Berechnungen schneller ausführen zu können. Leider bin ich da aber nicht fit genug um Dir Beispiele aus dem Kopf zu nennen. Falls es Dich genauer interessiert empfehle ich The Art of Assembly Language (daraus habe ich die Info). Ich weiß allerdings nicht ob PureBasic solche Tricks nutzt.
Ebenfalls erwähnt sei, dass Texturen im Speicher ja eh immer "aufgerundet" werden. Ich glaube also kaum, dass es da noch Performanceeinbußen gibt (bzw. nur minimale).
Ein paar evtl. hilfreiche Stellen aus der PB-Hilfe:
Ich bin gerade etwas irritiert... Du sprichst von Texturen und 2D gleichzeitig. Nutzt Du nur die Sprite Library oder auch Sprite3D?
Grundsätzlich sei erwähnt, dass es Assemblertricks gibt, um bei 2er-Potenzen mit zweckentfremdeten ASM-Befehlen manche Berechnungen schneller ausführen zu können. Leider bin ich da aber nicht fit genug um Dir Beispiele aus dem Kopf zu nennen. Falls es Dich genauer interessiert empfehle ich The Art of Assembly Language (daraus habe ich die Info). Ich weiß allerdings nicht ob PureBasic solche Tricks nutzt.
Ebenfalls erwähnt sei, dass Texturen im Speicher ja eh immer "aufgerundet" werden. Ich glaube also kaum, dass es da noch Performanceeinbußen gibt (bzw. nur minimale).
Ein paar evtl. hilfreiche Stellen aus der PB-Hilfe:
http://www.purebasic.com/german/documentation/sprite3d/createsprite3d.html hat geschrieben:Die Textur muss ein Quadrat in den folgenden Grössen sein: 16*16, 32*32, 64*64, 128*128 oder 256*256. Andere Größen funktionieren möglicherweise auf einigen Grafikkarten, aber nicht auf allen.
PureBasic 5.00 Beta 7 Dokumentation hat geschrieben:Sowohl die Breite als auch die Höhe der Textur sollten jeweils Vielfache von 2 sein. Und wenn möglich, sollte die Textur quadratisch sein, da dies auf der meisten Hardware am besten aussieht. Beispiele: 64x64, 128x128, 256x256, aber auch 128x64, 16x32... Ältere Grafikkarten können Einschränkungen haben, daher sollte die Textur-Größe möglichst auf 256x256 Pixel begrenzt werden.
http://www.purebasic.com/german/documentation/2ddrawing/drawingbufferpitch.html hat geschrieben:Gibt die Länge in Bytes von einer Zeile in der Ausgabe zurück, einschließlich jedes zusätzlichen "Paddings" (Auffüllen) hinter den Pixel-Daten einer Zeile.
Stimme ich zu! Ich habe in meinem Musikrechner eine alte GeForce 4 MMX (also die abgespeckte Version für Bürorechner) und selbst die hat keine Performanceprobleme mit "krummen" Sprites und verkraftet auch riesige Sprites und Texturen (von der Größe her das zigfache des Bildschirms).NicTheQuick hat geschrieben:Soweit ich weiß macht das gerade bei neueren Grafikkarten nichts aus. Und mit "neu" meine ich auch schon recht alte.
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)