S
Inhaltsverzeichnis
S3 Texture Compression
S3 Texture Compression (S3TC) auch DXTn oder DXTC ist ein ursprünglich für die Savage 3D entwickeltes Texturkomprimierungssystem von S3 Graphics. Es eignet sich im Gegensatz zu Bildkompressionsalgorithmen wie JPEG für hardware-beschleunigte Computergrafik, da es eine feste Datenkompressionsrate besitzt und nur einen Speicherzugriff pro Texel benötigt. S3TC besteht aus fünf Formaten, die nach den ihnen in DirectX zugewiesenen FourCC-Identifikation als DXT1 bis DXT5 benannt wurden und sich in der Handhabung des Alphakanals unterscheiden. DXT2 und DXT4 werden kaum verwendet. Wie jeder andere verlustbehaftete Kompressionsalgorithmus versucht S3TC sichtbare Artefakte trotz hoher Datenpackrate zu minimieren. So kann bei gleichem Speicherbedarf eine Textur mit deutlich höherer Auflösung verwendet werden, was insgesamt zu einem besserem Ergebnis führt. Mit Direct3D 10 wurden die fünf DXT-Stufen als veraltet (deprecated) eingestuft. Der Unterschied zwischen vorher und nachher multiplizierten Alpha-Werten wird nicht mehr gemacht. Aus DXT1 wird BC1, aus DXT2 und DXT3 wird BC2, aus DXT4 und DXT5 wird BC3.
Shader
Shader, auch Schattierer genannt, sind Hardware- oder Software-Module, die bestimmte Rendering-Effekte bei der 3D-Computergrafik implementieren. Hardware-Shader (auch: Shadereinheiten, Shader Units) sind kleine Recheneinheiten in aktuellen Grafikchips (unter Windows seit DirectX-Version 8, plattformunabhängig seit OpenGL 2.0 ansprechbar). Traditionell wird zwischen zwei Typen unterschieden, den Pixel- und den Vertex-Shadern. Shader können zur Erzeugung von 3D-Effekten programmiert werden. Während Pixel-Shader die Bildpunkte verändern und auch die Pixelfarbe berechnen können, dienen Vertex-Shader geometrischen Berechnungen und dynamischen Veränderungen von Objekten. So erzeugen z.B. beide Shader kombiniert einen Wassereffekt. Sie können auch zur Berechnung von Lava, Lack, Fell usw. eingesetzt werden. Seit DirectX 10 ist als dritter Shader-Typ der Geometry-Shader hinzugekommen, der die vom Vertex-Shader ausgegebenen Polygondaten erhält und diese noch weit flexibler bearbeiten kann, sogar weitere Geometrie zur Szene hinzufügen kann (der Vertex-Shader kann nur bestehende Geometrie manipulieren). Pixel-, Vertex- und Geometry-Shadereinheiten dürfen nicht als vom Rest getrennte Recheneinheiten (wie bspw. Koprozessoren) verstanden werden, sondern als fester Teil des Grafikchips innerhalb seiner Rendering-Pipelines. So ist der Vertex-Shader lediglich eine programmierbare T&L-Einheit, der Pixel-Shader entstand historisch aus dem Combiner - der genaue Aufbau der Shader-Hardware ist geheim. Konformität dieser Shader-Einheiten zu den Standards DirectX und OpenGL wird über den Grafiktreiber hergestellt.
Da sich der Funktionsumfang von Vertex- und Pixel-Shadern mit der Zeit immer weiter erhöhte, wurde letztlich das Konzept der Unified Shader entwickelt, bei dem der hardwareseitige Unterschied zwischen Vertex-, Pixel- und Geometry-Shader verschwindet. Hierbei können alle Shader-Einheiten des Grafikchips nun dieselben Operationen ausführen, womit eine feste Trennung zwischen den drei Shader-Typen nicht mehr sinnvoll ist. In Folge dessen kann nun der Grafiktreiber selbst entscheiden, welche Shader-Einheit zu welchem Zeitpunkt als Vertex-, als Pixel- oder als Geometry-Shader eingesetzt wird, was potenziell eine bessere Leistungsausbeute als bei Grafikkarten mit fest eingeteilten Shader-Typen bedeutet. Aktuelle Versionen von OpenGL und DirectX unterstützen das Unified-Shader-Konzept bereits und ab der Nvidia-GeForce-8-Serie und ATI-Radeon-HD-2000-Serie gibt es auch schon Grafikkarten, die es unterstützen. Für den Betrieb von Home-Nostruktor 8.0, Eisenbahn.exe Professional®© 7.5 und 8.0 wird die Unterstützung vom Pixel-Shader 3.0 vorausgesetzt.
Shading
Shading (von engl. to shade "schattieren") bezeichnet in der 3D-Computergrafik im allgemeinen Sinne die Simulation der Oberfläche eines Objekts. Dies wird unter anderem durch Beleuchtungsmodelle ermöglicht. Im Spezialfall von Polygongeometrie bezeichnet Shading auch das Interpolationsverfahren, mit dem der Normalenvektor auf beliebigen Punkten der Oberfläche berechnet wird:
- •Flat Shading führt keine Interpolation durch, sondern greift auf die Farbe des ersten bzw. des farbbestimmenden Vertex des gerade zu zeichnenden Polygons zurück. Diese Farbe wird für alle Punkte des Polygons verwendet.
- •Beim Smooth-Shading (auch Gouraud Shading genannt), wird die Beleuchtung auf die Vertices des Polygons angewendet, die Farbwerte der einzelnen Pixel jedoch aus den Farbwerten der Vertices interpoliert.
- •Phong Shading interpoliert für jeden Pixel aus den Normalen der Vertizes eine interpolierte Normale des Pixels und wendet das Beleuchtungsmodell für jeden Pixel mit einer neuen Normale an.
Bei den vorgestellten Verfahren haben jeweils alle Lichtquellen Einfluss auf das gesamte Polygon. Anders, als bei den Vorgängerversionen vom Home-Nostruktor, bei den Sie die Wahl zwischen Smooth-Shaing und Flat-Shading (im ausgeschaltetem Zustand des Smooth-Shaings) hatten, arbeitet Home-Nostruktor 8.0 ausschließlich und immer im Modus des Smooth-Shading, womit die Einstellungsoption für das Shading entfallen ist. Dies resultiert aus dem Ansatz, dass die Farbe der Pixel aus der Interpolation der Farbe der Texel und nicht der Vertices resultiert, die immer den Grauton R=200, G=200, B=200 besitzen sollten. Für den Fall, dass sie mehrere einheitliche, nicht interpolierte Farben von Polygonen über die Farbe der Vertices erzeugen möchten (was früher durch die Abschaltung des Smooth-Shadings möglich war), müssen Sie diese in zwei verschiedenen Konstruktionsdateien tun, oder die Geometrie des Modells tesselieren, damit zusätzliche nicht gemeinsame Vertices entstehen.
Sicht-Frustum (Frustum)
Frustum ist das englische Wort für "Kegelstumpf". Das Frustum kann man sich vorstellen als eine abgeschnittene Pyramide. Die Basis der Pyramide ist dann die hintere Clippingebene, also der Bereich, hinter dem nichts mehr gezeichnet werden soll. Die Schnittebene des Pyramidenstumpfes ist somit die vordere Clippingebene (der Bildschirm den der Betrachter vor sich hat). Alles, was vor dieser Ebene liegt, befindet sich damit hinter dem Betrachter. Die Seitenwände dieses Pyramidenstumpfes sind die Ebenen, die exakt am Bildschirmrand nach "hinten" verlaufen.
Das Sicht-Frustum ist somit der Innenraum - das Volumen - dieses Pyramidenstumpfes, in der folgenden Abbildung hellblau gekennzeichnet.
Spekularität oder Specularity
Spekularität, oder Specularity (von lat. speculum: "Spiegelung") ist das Maß an Glanz, das ein Material bzw. eine Oberfläche aufweist. Der Begriff ist im Kontext von Beleuchtungsmodellen in der Computergrafik üblich. Im Phong-Beleuchtungsmodell beispielsweise wird Glanz durch Glanzlichter angedeutet, die nur dort entstehen, wo sich die Lichtquelle selbst spiegelt. Größe und Helligkeit der Glanzlichter können je nach Material variiert werden, um ein mattes, raues oder glänzendes, glattes Aussehen zu erreichen.
Spiegelung
Spiegelung ist eine Reflexion des Lichts, allerdings unter dem Kontext, dass auf dem Objekt das (spiegelverkehrte) Abbild der Umgebung projiziert wird. Weil EEP ein sogenannter Echtzeit-Renderer ist, bei dem die Welt im Sinne von Anlagen nicht fest vorprogrammiert (vorgerendert) ist, vielmehr vom Benutzer des Programms kreiert und jeder Zeit verändert werden kann, so verzichten wir derzeit auf die Berechnung der tatsächlichen Spiegelung, stattdessen bedienen wir uns eines "Computertricks", der aber auch bei vielen anderen Spielen benutzt wird. Anstatt einer, in der Berechnung sehr zeitintensiven Prozedur der dynamischen Berechnung von Spiegelungen wird auf das Modell eine Cube-Map-Textur projiziert, welche die Illusion des Abbildes der Umgebung verschafft. Prinzipiell ist es möglich, bei jedem Modell ein anderes bzw. ein selbst kreiertes Cube-Map zu verwenden.
Abb.1. Die Abwicklung der Standard-Cube-Map-Textur im Home-Nostruktor 13.0
Abb.2. Spiegelungen der Cube-Map-Textur auf den Scheiben einer Lokomotive.