Letztendlich sind Sprites und Texturen nur Bilder - Blöcke von Rasterfarbdaten (obwohl wir manchmal die Grenzen ein wenig verschieben, um Nicht-Bilddaten darin zu platzieren). Der Unterschied liegt hauptsächlich in der Art und Weise, wie wir sie verwenden.
Wir bezeichnen ein Bild (oder einen Teil eines Bildes, der viele separate Teile enthält) normalerweise als "Sprite", wenn der beabsichtigte Rendering-Zweck darin besteht, direkt und ohne perspektivische Verzerrung auf das 2D-Raster des Bildschirms gezeichnet zu werden. Was Sie also im laufenden Spiel sehen, ist im Grunde das, was Sie in der Bilddatei selbst sehen (abgesehen von Farbtönung / Palettentausch / Transparenzeffekten). Dies gilt für die Hintergrundkacheln und Charaktere / interaktiven Objekte in 2D-Spielen, "Billboard" -Karten wie Partikel und ältere Stile des Tree & Shrub-Renderings sowie für die Elemente und Symbole der Benutzeroberfläche in 3D-Spielen.
Wenn wir umgekehrt ein Bild verwenden, um Oberflächendetails für die Polygone eines 3D-Objekts bereitzustellen, die möglicherweise perspektivisch gezeichnet werden, nennen wir dieses Bild normalerweise eine "Textur". Dieser Name hat sich auf andere Verwendungszwecke von Bilddaten übertragen, um das Rendering von etwas anderem zu modulieren, auch wenn es nicht mehr um Textur in dem Sinne geht, wie Sie es mit Ihren Fingerspitzen fühlen könnten - etwa Reflexionen, Verzerrungskarten, Überlagerungen, Masken oder Ähnliches Die allgemeine Verwendung von Bildern, die wir nicht speziell benennen möchten, neigt dazu, in unserer losen Nomenklatur unter "Textur" zusammengefasst zu werden.
Das macht die Grenzen zwischen den beiden unscharf und nicht besonders streng. Wenn ich ein Bild habe, das eine Folge von Feuer- und Rauchfahnen enthält, die zum Zeichnen von Partikeln auf Plakatwänden für einen Explosionseffekt verwendet werden sollen, kann ich das austauschbar als "Spritesheet" oder "Flipbook-Textur" bezeichnen. Oder wenn ich ein Kachelset-Bild habe, das alle Hintergrundkacheln für ein 2D-Spiel enthält, könnte ich das heute als "Texturatlas" bezeichnen, analog zu Atlas-Texturen, die für 3D-Spiele entwickelt wurden, obwohl die Daten und die Verwendung in meinem 2D-Spiel nicht zu unterscheiden sind von dem, was jemand anderes ein Spritesheet nennen würde. Wenn ich ein Rechteck mit Geometrie habe, dessen Zweck darin besteht, ein einzelnes Bild auf dem Bildschirm darzustellen, kann ich das als "texturiertes Quad" oder "Sprite" bezeichnen, je nachdem, worauf ich bei der Verwendung besonderen Wert legen möchte.
(Beachten Sie in diesem letzten Beispiel, dass "Sprite" sowohl für das Quellbildsegment in unseren Spiel-Assets als auch für die Instanz einer gerenderten Spieleinheit steht, die dieses Bildsegment verwendet - eine andere Art und Weise, wie wir diese Terminologie etwas inkonsistent verwenden.)
Einige Engines und Bibliotheken kodieren diese Unterscheidung, indem sie Intent in ihre eigene Nomenklatur umwandeln. In Unity können Sie beispielsweise festlegen, dass ein Bild-Asset als "Sprite" importiert werden soll. Dies ermöglicht eine Reihe zusätzlicher Optionen, die häufig für Benutzeroberflächen-Images oder 2D-Spiel-Assets gewünscht werden, z Teile des Bildes als diskrete Einheiten in Ihrer Szenen- und Objekteinrichtung. In diesen Fällen bedeutet "Sprite" oft "ein Bild (eine Textur) plus Metadaten " - aber es wird immer noch wie gewöhnliche Texturen unter der Haube gerendert. Die zusätzliche Verpackung ist praktisch, sodass wir UV-Offsets und ähnliches nicht überall dort verwalten müssen, wo wir das Bild verwenden möchten.