PureBoard
http://forums.purebasic.com/german/

Textur-Kompression mit x.BASIS transcoder
http://forums.purebasic.com/german/viewtopic.php?f=4&t=31655
Seite 1 von 1

Autor:  Xaby [ 10.09.2019 13:11 ]
Betreff des Beitrags:  Textur-Kompression mit x.BASIS transcoder

Folgendes:

PureBasic kann JPEGs, PNGs, und andere Dateien öffnen und umwandeln im Speicher als "BITMAP".
Das sind dann unkomprimierte Pixel, die entsprechend RAM verbrauchen.
Sagen wir, wir haben eine Textur, 512 x 512 Pixel bei RGB-A jeweils mit 256 Zuständen, oder anders 32 Bit "Farben", 24 + 8 Bit für Transparenz.
Also 4 Byte. Das wären dann 512 x 512 x 4 ~ genau 1 MB.
Bei einer 4K x 4K, also 4096 x 4096 Pixel Textur, wären es dann 64 MB im RAM.
Bild

Wenn diese Texturen nun aber als DXT komprimierte Daten z.B. in einem DDS-Container liegen würden, könnte die Textur im RAM kleiner sein.
Kompression von ca. 6:1 mit sichtbaren Artefakten.

Nun gibt es einen freien Kompression und auch Dekoder, welcher hier zu finden ist:

https://github.com/BinomialLLC/basis_universal

Nun wäre meine Frage, wie würde man das in PureBasic integrieren können?

DXT1, DXT3, DXT5, ETC1 und neuerdings auch ASTC sollten von neueren Grafikkarten unterstützt sein / werden.
Die einfache Pixel-Manipulation kann natürlich erschwert sein, vielleicht sogar unmöglich. Wir haben kein reines #Image mehr, wo wir Pixel für Pixel ansprechen können
und vermutlich würden auch 2D-Drawing-Befehle nicht mehr funktionieren.

Für Spiele reicht es in der Regel ja, wenn die Grafiken vorher erstellt wurden und eigentlich statisch sind, wenn sie auch dynamisch angezeigt würden.

Hier noch mal Beispiele bzw. Informationen der Kompression von Texturen zu ASTC
https://developer.nvidia.com/astc-texture-compression-for-game-assets

Es kann natürlich sein, dass wir die Cross-Plattform-Fähigkeit bei bestimmten Formaten verlieren können.
Aber genau da würde dann ja *.BASIS ins Spiel kommen.
http://richg42.blogspot.com/2018/05/basis-universal-gpu-texture-format.html
https://software.intel.com/en-us/articles/android-texture-compression-a-comparison-study-with-code-sample
https://cesium.com/blog/2017/02/06/texture-compression/
https://www.codeproject.com/Articles/867768/Android-Texture-Compression-a-comparison-study-wit

Vielen Dank für Hinweise.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/