Ist 1024x1024 ein weithin unterstützter OpenGL-maximale textur Größe auf dem desktop?

Ich bin erstellen Sie ein sprite-engine, die mit dem Konzept der "Grafik-Banken" zur Beschleunigung der rendering verwenden von batches. Ich Frage mich, ob jemand weiß, ob 1024x1024 Texturen sind breit abgestützt genug, diese Tage zu "zählen", und/oder ob es einen Weg gibt, um herauszufinden, wie weit zurück es wurde Unterstützung für 1024x0124 in Bezug auf die Grafikchips /- Karten, wie ein Diagramm oder so etwas, und entscheiden, basierend auf geschätzten Kompatibilität %, ob ich gehen sollte mit 1024x1024 oder zu begrenzen, die Banken zu 512x512 (die ich habe ein Gefühl, das mehr ist weit verbreitet, wenn Sie damit rechnen, integrierte Beschleuniger)

Sie könnte sowohl zu unterstützen. Überprüfen Sie für GL_MAX_TEXTURE_SIZE und skalieren die Texturen runter programmgesteuert vor dem hochladen. Die Aufteilung der Auflösung um die Hälfte, ist sehr einfach, wenn Sie die Nutzung von power-of-two breiten und Höhen, die neue pixel in das kleinere Bild ist der Durchschnitt von vier Pixeln in dem ursprünglichen Bild.
Ja, daran dachte ich. Die Skalierung nach unten hat zwei große zählt gegen ihn; 1) Meiner sprite-engine verwenden 4-bit-Paletten-Grafiken, mit 4 Paletten vor-berechnet, jede bank (in jedem Quadranten verwendet eine andere palette, um zu vermeiden, verlassen Sie sich auf pixel-shader-Unterstützung), so dass die pixelige Stil ruiniert werden durch die Filterung; 2) das kann nicht die Kosten Wert in code-Komplexität und-Pflege; ich würde lieber halten Sie es einfach und hängen von der kleineren Größe (oder lassen Sie die Treiber irgendwelche Hardware-Herunterskalierung in Echtzeit) - oder gar verweigern, wenn die max texture size nicht unterstützt. will nicht zu verschwenden mein Leben schreiben, kleben...
Ja, 1024 ist eine Allgemeine desktop-Größe. OpenGL 3.0-Implementierungen sind erforderlich zur Unterstützung dieser Auflösung auf das minimum. Einen großen Sprung von OpenGL 2.0, die nur erforderlich, 64x64 texel-Texturen 🙂 die Meisten desktop-GPUs unterstützen 4096-16384, und mit geringer Dichte Texturen in 4.x, die maximal unterstützte textur Dimensionen werden fast bedeutungslos.
Danke für die Antwort. Ich würde nicht sagen, dass die maximale Texturgröße wird fast oder sogar fast bedeutungslos. Gerade lese ich es auf und karge Texturen unscharf, wenn es einen cache-miss
Was ich damit meinte war, dass der adressierbare texel Bereich wird so groß, dass Sie sich keine sorgen zu machen. Karge Texturen sind noch nicht über cache-Effizienz, Sie sind über die Definition, Verhalten, wenn ein Teil einer textur, die nicht geladen wurden, aber Sie sind geladen für die erste Zeit. Denken Sie an die situation, wie ein page fault in traditionellen, virtuellen Speicher Latenz eingeführt werden, um die Störung, aber können Sie eine Anwendung haben, die Ressourcen verwendet, die weit größer ist als jemals passen auf einmal in den Speicher. T

InformationsquelleAutor Roger Levy | 2013-10-24

Schreibe einen Kommentar