Leserartikel [FAQ] 3D Jargon

Hildebrandt17

Lt. Commander
Registriert
Feb. 2005
Beiträge
1.849
Inhaltsverzeichnis:

1. Einleitung

2. Grundbegriffe-->
Rendern
Polygon
Textur
Shader


3. Licht und Schatten-->
Lightmap
Per-Pixel Lighting
Volume Light
High Dynamic Range Rendering
Shaddow Map
Shadow Volume (Stencil Shadows)

4. Virtuelle Geometrie-->
Hightmap
Bumpmapping
Normalmapping
Parallaxmapping
Displacementmapping

5. Effekte -->
Reflection
Refraction
Glow/Bloom
Blur (generell)
Motion Blur
Depht of Field
Lens Flare
Specular Highlight
SSS (Sub Surface Scattering)
Cel Shading

6. Sonstiges-->
Alpha Map
MipMap
LOD (Level of Detail)
FOV


Historie

3.9.2006: Erstellung, Einleitung, Grundbegriffe, Virtuelle Geometrie, Vorab .zip Archiv
4.9.2006: Diverse Verbesserungen und Ergänzungen, Fertigstellung Virtuelle Geometrie
5.9.2006: Licht und Schatten, Änderungen und Fixes
9.9.2006: Effekte hinzugefügt (fertig)
12.9.2006:Sonstiges hinzugefügt (fertig)

Hinweis: FAQ ist noch nicht komplett!
 
Zuletzt bearbeitet:
Einleitung

Seit nunmehr zehn Jahren und mehr schlägt sich der Computerspieler durch Polygonabenteuer. Sei es auf dem PC, der Konsole oder neuerdungs auch auf Handhelds.
Seit Einführung der 3D Grafik hat sich natürlich einiges in Sachen Komplexität und Features getan. So wird man nicht selten von Begriffen wie "Bump Mapping", "High Dynamic Range" oder "Softshadows" überrumpelt, wenn man die Features eines neuen Computerspiels hört oder im Grafikmenü versucht die richtige Grafikeinstellung für seinen PC zu finden.

Desswegen soll das Ziel dieses FAQs sein, einen kurzen Überblick über die wichtigsten und häufigsten Techniken moderner 3D Spiele zu geben. Dabei liegt der Schwerpunkt auf Verständlichkeit und nicht auf Vollständigkeit (Geschichte und genaue technische oder mathematische Details werden nicht beschrieben)


Da sich die meisten Effekte am besten durch Bilder erklären lassen, werde ich zu jedem Punkt (wenn möglich) zwei Bilder hinzufügen.
Beim ersten wird es sich um ein generisches Beispielbild handeln, um den Besprochenen Effekt möglichst klar hervorzuheben. Dabei verwende ich die Demo von 3Ds Max 8 (30 Tage Demo hier zu finden) mit jedes Mal dem möglichst gleichem Setting, um auch einen Vergleich der unterschiedlichen Technologien zu ermöglichen. Bei 3Ds Max handelt es sich um eine professionelle Rendersoftware, verwendet in der Film-, Spiel- und Designbranche, mit der es möglich ist fast alles zu erstellen - allerdings nur fast. Desswegen sind manchmal keine genauen Vergleiche möglich, ich werde aber extra darauf hinweisen.


Bild der Beispielszene - 2 Kugeln und ein Stück Schrift in einer Ecke (4300 Polygone), beleuchtet von einem Licht, gerendert mit Mental Ray. Hier mit zugeschalteter Global Illumination und raytraced Shadows


Beim zweiten Bild wird es sich idR um einen Screenshot aus einem bekannten Spiel handeln, um die Verwendung in freier Natur zu verdeutlichen.

Um aufgrund der Bildermenge die Bandbreite zu schonen, sind alle Bilder in einer relativ niedrigen Auflösung gehalten. Desswegen wird es zu jedem Kapitel ein kleines .zip Archiv mit Hochauflösenden Bildern geben, um besser vergleichen zu können

Grundbegriffe (750kb)
Licht und Schatten (folgt in Kürze)
Virteuelle Geometrie (1.5mb)
Effekte (5.7mb)
Sonstiges (2.8mb)


Alle Bilder in diesem Thread wurden von mir extra für diese FAQ erstellt
 
Zuletzt bearbeitet:
Grundbegriffe

Es gibt im Bereich 3D Grafik ein paar Grundlagen auf denen die meisten anderen Techniken aufbauen. Diese sind nicht nur für die Spiele Entwicklung von Bedeutung


Rendern
Rendern ist der Ausdruck dafür, wenn der Computer aus den vorliegenden Rohdaten ein fertiges Bild berechnet. Man kann sich das vorstellen wie beim Hausbau: Aufgrund eines Plans (Rohdaten) entsteht aus mehreren Materialien in mehreren Arbeitsschritten (das Rendern) das fertige Haus (Bild).
Generell unterscheidet man 2 Arten von Rendering:
Realtime (Echtzeit) und Non Realtime (Nicht Echtzeit) Rendering. Ersteres, welches bei sämtlichen 3D Spielen eingesetzt wird, muss in der Lage sein, so viele Bilder pro Sekunde (fps= Frames per second) zu rendern, dass für den Betrachter ein flüssiger Bildablauf entsteht. In der Regel sind das mindestes 25 Bilder. Da man nicht unendlich viel Rechenleistung zu Verfügung hat, muss man an der Komplexität der Szenen sparen, um schnelles Rendern zu ermöglichen.
Bei Non Realtimerendering spielt die Zeit an sich keine Rolle. Nicht Echtzeit Rendering wird z.B. eingesetzt für Specialeffects in Filmen – hier kann es durchaus sein, dass ein einziges Bild mehrere Stunden zum Berechnen braucht, und das auf Servern mit einer zweistelligen Zahl an Prozessoren!
Zum Schluss sein noch angemerkt, dass Aussagen á la „Die PS3 Demo war nicht echt, das war alles Rendergrafik!“ demnach falsch sind


Polygon
Ein Polygon meint generell ein Vieleck. Im Bereich der 3D Grafik stellt es aber sozusagen die kleinste Einheit dar, eine Fläche. Ein 3D Objekt besteht aus einer Vielzahl solcher Polygone, heutzutage meist mehreren Tausend (je nach Objekt). Das Gesamte nennt man dann einen Wireframe (Drahtgittermodell)

Diese Kugel besteht aus mehreren hundert Polygonen, zusammen bilden sie einen Wireframe

Hierbei gilt, je genauer ein Objekt „gefertigt“ sein soll, dass heißt je feiner Rundungen oder Vertiefungen ausfallen sollen, desto mehr Polygone benötigt man. Allerdings steigt mit der Zahl der Polygone auch der Rechen- und Speicherbedarf an, weswegen Entwickler verschiedene Techniken entwickelt haben, um Geometrie (also Details) vorzutäuschen. Siehe dazu Kapitel Virtuelle Geometrie


Textur
Hat man nun sein 3D Modell als Wireframe vorliegen, so ist das optisch noch nicht sonderlich ansprechend. Der erste Schritt wäre, dem Objekt eine Textur (auch Map) zu verpassen. Eine Textur ist nichts anderes als ein herkömmliches schwarz/weiß oder Farbbild, dass wie ein Stück Papier auf das Objekt geklebt wird.

Eine simple Beispieltextur

Die Textur eingesetzt in unserer Beispieszene

Texturen müssen aber nicht nur unbedingt sichtbare Informationen enthalten. So kann man Texturen auch dazu verwenden, Beleuchtung oder Schatten zu simulieren als auch um transparente Teile eines Objekts zu definieren.
In heutigen Spielen liegen meist mehrere Texturschichten auf demselben Objekt und auch animierte Texturen werden eingesetzt (z.B. Bildschirme im Spiel, Feuer)


Shader
Ein Shader ist ein Programm, das die Farbe eines einzelnen Objekts, Pixels oder eines Teils des Bildes wärend des Rendern verändert. Um beim Beispiel des Hausbaus von vorher zu bleiben, wäre ein Shader einer der vielen Arbeitsschritte. Es können auch mehrere Shader auf einmal angewendet werden. Typische Beispiele für den Einsatzt von Shadern in modernen Spielen sind Wasser, Schatten, Glanzeffekte oder Rauch
 
Zuletzt bearbeitet:
Licht und Schatten

Gut, wir haben nun unser Drahtgittermodell mit einer farbigen Textur drauf, das sollte doch schon nach etwas aussehen? Muss man die Szene dann noch extra beleuchten?

Links eine Kugel, belechtet (die unteren Teile werden vom Licht nicht getroffen), rechts die selbe Kugel ohne Belechtung

Wie man an dem oberen Bild gut erkennen kann, kommt ein echter 3D Eindruck erst durch Licht (und damit auch Schatten) zu Stande, im Extremfall wäre eine Kugel sogar einfach nur ein Kreis.
Licht, wie es in der Natur vorkommt, ist ziemlich komplex. Es besteht normalerweise aus mehreren Wellenlängen, die sich unterschiedlich verhalten (Regenbogen!), an rauen Flächen wird es zerstreut und beleuchtet andere Gegenstände indirekt etc
Das physikalisch korrekt zu simulieren ist ein großer Rechenaufwand und desswegen bislang nur in Nicht Echtzeit 3D Programmen zu finden.
Allerdings wissen sich die Spieleentwickler zu helfen und habe diverse Techniken entwickelt, Belechtung mit dem einen oder anderem Kompromiss in Spielen zu realisieren.
 
Zuletzt bearbeitet:
Virtuelle Geometrie

Als Spieldesigner möchte man heute ganze Planeten bis ins letzte Detail nachbauen. Wer sich aber schon mal einen Grashalm oder nur seine eigene Hand angeschaut hat, weiß wieviel Detail Mutternatur in alles gesteckt hat. 100% runde Kurven, unzählige haarbreite Furchen - das Nachzubilden würde selbst einen Hochleistungsrechner überforden. Desswegen wurden mit der Zeit verschidenste Techniken entwickelt, um resurcenschonend diese Detail wieder zurück zu bringen - Je nach Technologie mit dem einen oder anderen Kompromiss.


Hightmap
Nehmen wir also an, wir haben einen (polygonarmen) Quader, in den wir ein paar Vertiefungen hineingezaubert bekommen möchten. Um das zu erreichen, verwendet man eine Hightmap, die auf das Objekt gelegt wird, aber nicht direkt sichtbar ist. Eine Highmap ist eine Textur, die im einfachsten Fall ein Graustufenbild ist.

Bild einer schwarz/weiß Hightmap

Dabei steht die Helligkeit (von 0=Schwarz bis 255=Weiß) jedes Pixels dafür, wie hoch oder tief die virtuelle Vertiefung sein soll. Habe ich z.B. eine maximal mögliche Vertiefung von 5cm eingestellt, so wird der Teil eines Objekts, an dem die daraufliegende Highmap grau ist um 2,5cm abgesenkt. Ist er weiß, wird er garnicht abgesenkt usw


Bumpmapping
Am unteren Ende der "Nahrungskette" steht gewöhnliches Bumpmapping mit einer schwarz/weiß Hightmap. Bumpmapping wird meistens eingesetzt bei Felsen, Fußböden, Waffenmodellen, Baumstämmen etc wenn nicht von einer neueren Methode ersetzt. Die Technik: Jedes Objekt muss beleuchtet werden (sonst wäre der Bildschirm schwarz). Dort wo kein Licht hinkommt, ist Schatten. So würden auch unsere Furchen in unserem Objekt einen Schatten werfen. Dieser Schatten wird dar gestellt. Aber Bilder sagen mehr als tausend Worte:

Die Kugeln wurden mit Bumpmapping versehen. Die Hipghmap ist die obige. Auf der vorderen Kugel sieht man eine (virtuelle) Vertiefung, auf der hinteren eine Erhöhung

Ein Bild aus Prey: Links mit, recht ohne Bumpmapping

Die Limitierung der Technik sieht man am besten am oberen Bild: So wird z.B. am linken Rand der vorderen Kugel die Vertiefung immer flacher. Eine wirkliche Furche würde durchgehend gleich tief bleiben.
Der andere Nachteil ist, dass Bumpmapping blickwinkel abhängig ist. Dass kann man am besten asprobieren, indem man bei seinem Lieblings 3D Spiel in sich nahe an eine Wand mit Bumpmapping stellt und selbige aus sptizem Winkel betrachtet. Es sieht nichtmehr realistisch aus.


Normalmapping
Normalmapping (auch Dot3 Bumpmapping genannt) ist eine erweiterte Version des Bumbmapping . Dabei werden die Informationen nichtnur in einem schwarz/weiß Bild gespeichert, sondern in einer farbigen Normalmap.

Unsere Hightmap wurde mit Hilfe eines Photoshoplugins zu einer Normalmap konvertiert

Um das genaue Prinzip und die Unterschiede zu erklären müsste ich allerdings mein Versprechen brechen, mich nicht zu sehr in mathematische Details zu verstricken.
Merken kann man sich aber, wie sie eingesetzt werden. So werden während der Entwicklung eines Spiels 2 Versionen z.B. einer Spielfigur erstellt. Eine mit sehr vielen Polygonen (mehr als 100.000) und eine mit relativ wenigen (5000). Nun kann der Spieledesigner von dem feinem Modell eine Normalmap anfertigen. Am einfachsten könnte man sagen, dass der Winkel (ganz ohne Mathe gehts halt doch nicht) in dem Licht auf die Oberfläche des hochaufgelösten Modells trifft in einem Farbbild gespeichert wird. Dieses Bild wird dann auf das grobaufgelöste Modell gelegt und fortan mit den auf dem Bild gespeicherten Informationen für die Beleuchtung und berechnet. Das Ergebnis ist oft beeindruckend, so kann man meist keinen Unterschid mehr erkennen zwischen dem hochaufgelösten Modell und dem einfachen mit Normalmapping

Links das Modell mit Normalmapping (550 Polygone), rechts ohne (160.000 Polygone; mit ultrafeinem Displacementmapping [siehe unten])

Dieses "Tierchen" aus Prey wäre ziemlich eckig ohne Normalmaps. Alle Vertiefungen und Beulen sind vorgetäuscht


Parallaxmapping
Parallaxmapping, auch Offset- oder Virtual Displacementmapping genannt, ist eine erweiterte Form des Normalmappings. Hinzu kommmt, dass der aktuelle Betrachtungswinkel miteinkalkuliert wird. Dabei wird die zugrunde liegende Textur in Echtzeit so verschoben, dass die eigentlich ebene Fläche noch plastischer wirkt als bei herkömmlichen Bumpmapping. Das kommt vorallem in bewegten Szenen zum Tragen. Allerdings wird hier, wie bei den beiden vorherigen techniken keine echte Geometrie erzeugt, wesswegen auch Parallaxmapping unter sehr spitzen Winkeln versagt.

Die bekannten Einschusslöcher aus F.E.A.R. werden mit Hilfe von Parallaxmapping realisiert. Geht man ein Stück zur Seite, verändert sich auch die Textur

In heutigen 3D Spielen löst Parallaxmapping mehr und mehr das gewöhnliche Bumpmapping ab. Als Beispiele wären hier Oblivion, Splintercell 3, F.E.A.R. oder die kommende Unreal Engine 3 zu nennen


Displacementmapping
Displacementmapping stellt optisch die beste Möglichkeit dar, anhand einer Highmap Geometrie zu erzeugen. Allerding werden hier spätestens beim Rendern auch wirkliche Polygone erzeugt, weshalb Displacementmapping die mit Abstand performancehungrigste Technlogie zur Erzeugung von Geometrie ist. Es gibt aber auch einige Vorteile: So ist es speichersparender, ein Modell mit z.B. 400 Polygonen und ein Schwarz/Weiß Bild zu speichern, als ein Modell mit 500.000 Polygonen. Weiters kann Displacementmapping bereits in der Modellierphase (Entwicklung) eines Spiels durchaus nützlich sein. So ist es möglich, anstelle von umständlichem von-Hand Modellieren, z.B. mit Hilfe einer Highmap aus einer Ebene eine gebirgige Landschaft machen. (man denke an Oblivion)

Die Beispielszene mit Displacementmapping: Man achte im Vergleich zu Bumpmapping auf die Ränder der Kugel so wie auf den Schattenwurf!

Mit Hilfe einer Highmap kann man sekundenschnell Landschaften erzeugen

Bisher ist Displacementmapping noch in keinem 3D Spiel in Echtzeit zu finden. Dies könnte sich aber mit DirectX 10 ändern, da hier erstmals Displacementmapping in Echtzeit möglich wird
 
Zuletzt bearbeitet:
Effekte

Unser beleuchtetes Modell steht also - samt Textur und vorgetäuschter Geometrie. Allerdings ist es noch ein weiter Schritt bis zum großen Ziel: Der perfekten Nachbildung der Realität. Das Aussehen vieler Materialien im echten Leben ist nicht „statisch“ wie eine Textur. Man braucht sich nur zu Tisch setzten und den Kopf hin und her bewegen, mit Blick auf den Porzellanteller, das Besteck und das Glas: Am Besteck wird die Umgebung reflektiert, das Glas verzerrt und biegt alles dahinter Befindliche und auf dem glatten Porzellanteller kann man Glanzeffekte sehen. All diese Effekte ändern sich jedoch je nach Betrachtungswinkel und Entfernung, weswegen man sie nicht mehr so einfach mit nur einer Textur am PC nachbauen kann.
Weiters versuchen Spieledesigner atmosphärische Stimmungen, wie in Filmen, in Computerspiele zu bringen. Um das zu erreichen muss, wie immer, tief in die Trickkiste gegriffen werden.

Ich empfehle jedem sich für diese Kapitel die Hiresbilder herunter zu laden, da alle Bilder hier sowohl ziemlich klein als auch komprimiert sind und die gezeigten Effekte oft nicht gut zu erkennen sind!


Reflection
Reflections sind, wie man schon heraushören kann, die Simulation von Reflexionen. Im echten Leben ist es so, dass wenn ein Lichtstrahl auf einen reflektierenden Gegenstand trifft, der Lichtstrahl im gleichen Winkel von dem Objekt reflektiert wird, in dem er auf das Objekt aufgetroffen ist. Wer sich darunter nichts vorstellen kann oder in der Schule geschlafen hat, der probiert das am besten zuhause vor dem Badezimmerspiegel mit einer Taschenlampe aus.

Extreme Reflexionen, hier mit physikalisch korrektem, aber rechenintensivem Raytracing

Um Objekte wie poliertes Metall, Glas oder Marmorböden realistisch in Spiele zu implementieren muss der moderne Spieledesigner Reflexionen in seine Schöpfung einbauen. Hierfür werden meistens Cubemaps verwendet, da dies eine sparsame Methode darstellt Spiegelungen zu simulieren. Eine Cubemap (frei übersetzt Würfelbild) sind 6 vorgerenderte Bilder der Umgebung, die man später als Reflexion sehen möchte, „aufgeklebt“ auf die Innenseite eines Würfels (der Würfel selbst und die Map sind nicht direkt zu sehen). Die 6 Bilder ergeben ein 360° Panorama der Szene – stünde man in der Mitte des Würfels, so hätte man die komplette Rundumsicht. Trifft nun ein „Blickstrahl“ ein reflektierendes Objekt, wird der Strahl wie oben beschrieben auf die Cubemap umgeleitet und verändert die Farbe des Objekts dementsprechend. Der Vorteil ist, dass das relativ wenig Rechenpower braucht, ein Nachteil ist, dass keine Doppelreflexionen möglich sind, und das bewegliche Objekte nicht gespiegelt werden – Das kann aber noch ein extra Shader erledigen.

Kämen in Counter Strike Source physikalisch korrekte Spiegelungen zum Einsatz, würde sich auch der Spieler spiegeln


Refraction
Refraction, zu Deutsch Lichtbrechung, ist das Gegenstück zu Reflection. Hier wird das Licht gebündelt oder gestreut. Glas, Linsen (nicht die essbaren!) oder Wasser sind typische Einsatzgebiete. Hierbei wird der dahinter liegende Teil des Bildes, bzw. der Cubemap je nach Materialeigenschaft und Form verzerrt.

Refractions kommen ind Computerspielen nicht so oft vor wie Reflections, sei es da das Einsatzgebiet zu beschränkt ist oder da sie schwieriger zu realisieren sind

Refractions kommen noch recht selten zum Einsatz, HL² hat bis heute noch die schönsten im „Angebot“


Glow/Bloom
Glow und Bloom, zu Deutsch Glühen, sind Effekte, bei denen entweder Teile des Bildes, gewisse Helligkeitsbereiche (z.B. von Mittelgrau bis Weiß) oder einzelne Objekte zum Glühen gebracht werden. Dabei vergrößern sich die Kanten der ausgewählten Bereiche, werden unscharf und treten über ihre Grenzen hinaus.

Die drei Objekte strahlen in unterschiedlichen Farben und mit unterschiedlicher Intensität

Der Bloomeffekt wir oft eingesetzt, um High Dynamic Range vorzutäuschen, dabei wird der Bloomeffekt erzeug, abhängig davon, ob der Spieler in den Himmel schaut, oder nicht. Spiele wie NFSMW oder World of Warcraft wären da als Beispiel zu nennen. Bloom kann allerdings im direkten Vergleich mit echtem HDR nicht mithalten

Im direkten Vergleich bei HL²: Lost Coast fällt der Qualitätsunterschied deutlich auf


Blur (generell)
Blur steht für Weichzeichnung bzw. Unschärfe. Dabei werden das gesamte Bild, oder die Ränder unscharf gefiltert. Blur ist in diesem Fall ein so genannter Overlayeffekt oder Post Processing Effekt, das heißt er wird über das fertige Bild „darüber gelegt“. Die kurzzeitige verschwommene Sicht, wenn man in einem Egoshooter von einer Waffe getroffen wird, ist hier wohl das bekannteste Beispiel.
blurgenerellmaxlf5.jpg

Das ganze Bild ist unscharf; Dieser Effekt wurde erst nach dem Rendern in Photoshop hinzugefügt

Andere Overlayeffekte wären noch z.B. Farbkorrektur oder Bildrauschen, welche eine filmähnliche, surreale Atmosphäre erzeugen können. Die Jupiter EX Engine (F.E.A.R. und Condemend) wäre hier das Paradebeispiel

Wer solange trinkt, bis er kleine, böse, rote Mädchen sieht, darf sich nicht wundern, wenn er am nächsten Morgen vom Arzt begrüßt wird (Blur, Bildrauschen, Farbfilter)


Motion Blur
Motion Blur, oder Bewegungsunschärfe, simuliert den Effekt wenn sich Objekte zu schnell für das menschliche Auge oder die Kamera bewegen, sodass der Eindruck entsteht, als ob sie eine Spur bzw. Schlieren hinter sich her ziehen würden.

Der HB17 Schriftzug fällt von obern herab – Zu schnell für die virtuelle Kamera, um ein scharfes Bild zu erzeugen

Es gibt zwei Anwendungsmöglichkeiten: Das eine Mal bewegt sich die (virtuelle) Kamera und das gesamte Bild schliert (Camera Motion Blur) oder die zweite Möglichkeit, dass die Kamera still steht, und sich ein oder mehrer Objekte schnell bewegen (Object Motion Blur). Motion Blur wird besonders oft bei Rennspielen eingesetzt, um ein besseres Gefühl von Geschwindigkeit zu vermitteln.

Wer schon mal mit 350km/h auf der Autobahn von der Polizei geflüchtet ist, kennt diesen Effekt nur zu gut


Depth of Field
Depth of Field oder Tiefenunschärfe entsteht, wenn eine Linse auf ein Objekt scharf stellt, hinter oder vor dem Fokuspunkt aber noch andere Objekte liegen. Diese werden dann, je nach Entfernung (bei Kameras auch Blendengröße), unterschiedlich stark „geblurt“. Dieser Effekt vermittelt in Spielen eine besonders natürliche und cineastische Atmosphäre und ist gerade sehr auf dem Vormarsch.

Die Kamera fokussiert auf die blaue Kugel, alles Andere ist unscharf. Das lenkt die Aufmerksamkeit auf das gewünschte Objekt

Die Technik dahinter ist ähnlich wie beim normalen Blur, nur, dass vorher aus der Sicht des Spielers berechnet wird wie weit alle sichtbaren Objekte entfernt sind (Z-Buffering). Dann wird ermittelt, auf welche Entfernung gerade fokussiert wird, alles andere wird geblurt

Call of Juarez ist das derzeit beste Beispiel, wie DOF zur Verbesserung der Atmosphäre beitragen kann


Lens Flare
…Kennt jeder der schon einmal probiert hat, den Sonnenuntergang zu fotografieren oder öfters in die Sonne schaut. Dabei strahlt die Sonne weit über ihre eigentliche Form hinaus und hinterlässt quer über das Bild helle Ringe und sonstige Formen. Diese Formen verändern ihre Form und Position, je nach Blickwinkel gegen das Licht. Wird es von Fotographen noch gehasst, wird es in Computerspielen eingebaut, um einen filmähnlichen, natürlichen Effekt zu generieren

Der Klassiker: Ein heller Stern im leeren Weltall


Specular Highlight
Specular Highlight, oder Glanzlicht, ist der Effekt der auftritt, wenn Licht auf eine glatte Oberfläche scheint und dort reflektiert wird. Dabei entsteht ein heller weißer Punkt auf dem Material, der sich je nach Blickwinkel bewegt. Man kann das auch leicht zuhause ausprobieren, indem man z.B. ein Messer im Licht dreht und schwenkt.

Den hellen, weißen Punkt nennt man Specular Highlight

Dieses Glanzlicht kann je nach Material unterschiedliche Formen und Farben haben. Besonders zu beobachten ist dieser Effekt bei Metall, Lack, polierten Böden, Wasser und nassen Oberflächen und wird bei beinahe allen neuen Spielen eingesetzt.

Durch die hellen Glanzlichter wirkt diese Metallstatue aus Splintercell 3 erst realistisch


SSS (Subsurface Scattering)
Spiele wie HL² haben uns gezeigt wie echt Spielfiguren wirken können - die Haut allerdings sah noch immer nicht realistisch aus. Bisher ist sie meistens zu stumpf oder sieht aus wie Plastik. In der Realität jedoch verhält sich Haut nicht wie z.B. Holz, welches auftreffendes Licht sofort streut, oder wie Glas, das Licht komplett durchlässt.
Trifft Licht auf Haut, wird ein Teil gleich gestreut, der Rest dringt ein und wird erst allmählich gestreut. Man kann das leicht selber ausprobieren, indem man eine Taschenlampe gegen die Hand oder das Ohr hält.
Mit Subsurface Sacattering, zu Deutsch so viel wie „Streuung unter der Oberfläche“, versucht man diesen Effekt am Computer nachzustellen, neben Haut vor allem auch bei Wachs, Marmor, Milchglas oder Milch.

Besonders am Schriftzug kann man erkennen, wie das Licht teilweise eindringt

SSS ist jedoch sehr rechenaufwendig. Es gibt zwar einige Work-arounds, diese beanspruchen allerdings noch immer viel Rechenleistung. So ist SSS bisher nur in 2 Grafikdemos zu finden - neben NVidias Demo „Luna“ der Geforce 7 Serie noch im bekannten 3D Mark06. Das erste Spiel das SSS einsetzen wird, wird vermutlich Crysis sein.

Die Hörner auf dem Rücken des Seemonsters in Canyonflight (3D Mark06) lassen einen Teil des Lichts durch


Cel Shading
Die meisten Spiele versuchen die Realität so gut wie möglich nachzubilden, bestenfalls ein wenig zu überzeichnet. Cel Shading hingegen geht da einen komplett anderen Weg. Ziel ist es, den Look eines Spiels an den eines Zeichentrickfilms anzupassen, wobei man sagen muss, dass heute die meisten „Zeichentrick“ Filme auch bereits am Computer in 3D generiert werden.
Das auffälligste Merkmal beim Cel Shading ist, dass um die sichtbaren Konturen aller Objekte Linien gezeichnet werden. Weiters wird meist auf Texturen verzichtet und auch Licht bzw. Schatten werden nicht wie in echt in weichen schwarz/weiß Verläufen sondern auf wenige Graustufen reduziert dargestellt. Auch die Farben werden oft auf wenige reduziert.

Leider gibt es bisher relativ wenig populäre Spiele, die Cel Shading implementiert haben, XIII und The Legend of Zelda: Wind Waker sind wohl die bekanntesten. Demnächst folg auch noch Team Fortress 2. Allerdings gibt es auch die Möglichkeit Farcry und Doom³ mit Hilfe eines Mods einen Cel Shading Look zu verpassen.

Im Grafikmenü von Farcry lässt sich der Modus „Cartoon“ einstellen
 
Zuletzt bearbeitet:
Sonstiges

Ich empfehle auch hier die Highresbilder herunter zu laden!

Alphamap
Was macht man nun, wenn man in einem Spiel einen Maschendrahtzaun einbauen möchte?
Man könnte natürlich jeden einzelnen Draht aus Polygonen modellieren, dann hätte man aber eine schier unspielbare Anzahl an Polygonen an nur einem Zaunstück. Man könnte natürlich auch eine „Maschendrahtzauntextur“ auf eine einzige Fläche kleben. Allerdings würde man dann nicht sehen, was sich hinter dem Zaun befindet.
Hier kommen Alphamaps ins Spiel. Alphamaps sind an sich nur schwarz/weiße Texturen, wie Hightmaps. Diese werden auf das Modell gelegt. Beim Rendern überprüft der Computer zuerst, welche Objekte zu sehen sind, und welche verdeckt sind. Befindet sich aber auf einem Objekt eine Alphamap, so sagt diese, dass alle Teile des Objekts, auf dem die Alphamap schwarz ist durchsichtig sein sollen, weiße Teile sollen komplett undurchsichtig sein. Dazwischen gibt es auch verschiedene Stufen von Grautönen, um halbtransparente Objekte zu erzeugen.

Hier habe ich unsere Hightmap von oben als Alphamap „missbraucht“

Alphamaps werden in den meisten Spielen eingesetzt, typische Einsatzbeispiele sind Gras, Zäune, Gitter oder Bäume. Der Vorteil ist, dass sie sehr wenig Rechenzeit brauchen im Vergleich zu echter Geometrie, der Nachteil ist, dass solche Objekte wirklich flach sind und von der Seite unrealistisch aussehen können, weiters gestaltet sich Kantenglättung (besser gesagt Multisampling) nicht so einfach.

Zäune wie hier in Battlefield 2 sind nicht selten anzutreffen


Mipmap
Mipmaps sind die Matroschkas unter den Texturen. MIP ist ausnahmsweise keine englische Abkürzung, sondern steht für das lateinische „multum in parvo“ – zu Deutsch „Viel auf kleinem Raum“. Eine Mipmap besteht nämlich nicht nur aus einem Bild in fester Auflösung, sondern beinhaltet verschiedene Auflösungen desselben Bildes.

Dabei ist bei jedem Bild sowohl die vertikale als auch die horizontale Auflösung um die Hälfte geringer als beim nächst größeren, das heißt, dass immer 4 Pixel zu einem „zusammengeschmolzen“ werden (z.B. 512x512à256x256à128x128à64x64à…). Theoretisch sind so viele MipMap Stufen (oder LOD), bis das kleinste Bild nurnoch 1x1 Pixel groß ist, möglich
Nun stellt sich aber die Frage, wozu man das braucht?
Nun, es gibt 2 Gründe: Zum einen ist das menschliche Auge nicht unendlich fein „aufgelöst“. So kann man Details umso schlechter erkennen, je weiter sie vom Auge entfernt sind. Deswegen kann man ab einer bestimmten Entfernung Texturen mit geringerem Detailgrad einsetzten, ohne dass der Betrachter das wirklich merkt. So kann man Rechenzeit sparen.
Ein anderer Grund, warum man Mipmaps einsetzt, ist, dass man damit Aliasing (ja, dass ist das nervige Flimmern, gegen das man auch Antialiasing einschaltet) vorbeugen kann. Ein Nachteil ist, das sogenanntes Mipbanding auftritt. Das bedeutet, dass z.B. von 0-5m Entfernung vom Betrachter die Mipmap Stufe 0 (größte) eingesetzt wird. Von 5-10m Entfernung dann aber Stufe 1 und so weiter. Nun aber stoßen bei 5 Meter 2 Texturen mit dem selben Bildinhalt zusammen, nur dass eine davon (Stufe 1) nur ein Viertel der Auflösung hat. Das sieht man in einem deutlichen Übergang.

Links: Mipmap Stufe 3, Rechts Stufe 0; Der Unterschied ist deutlich


LOD (Level of Detail)
Level of Detail, oder Detailgrad, ist prinzipiell den Mipmaps ähnlich, beschränkt sich aber nicht nur auf Texturen. So kann ab einer gewissen Entfernung neben der Texturauflösung auch die Polygonanzahl von Objekten oder gewisse Effekte reduziert oder ganz abschalten werden. Es ist z.B. auch möglich, weit entfernte 3d durch 2d Objekte zu ersetzen.
Das ist besonders in Spielen mit weiter Sichtweite wie Oblivion oder Battlefield wichtig. Das hat neben dem Performancevorteil allerdings den Nachteil, dass beim Näher kommen, Objekte oder Texturen oft unschön „aufpoppen“ und man eventuell wieder harte Übergänge zwischen den Detailstufen sehen kann.

Die ganze Szene hat nur noch 730 statt 4400 Polygone und anstellet den raytraced Shadows kommen nur noch niedrig aufgelöste Shadowmaps zum Einsatz. Das spart zwar Leistung, sieht aber bei näherer Betrachtung unschön aus.

Gerade an weitläufigen Wasserflächen kann man bei Oblivion erkennen, wie plötzlich die Effekte reduziert werden und das Wasser an der Brandung sonderbar eckig aussieht. Weiters werden in der Entfernung nur weniger Bäume und niedrig aufgelöste Texturen verwendet


FOV (Field of View)
Das Field of View, oder der Blickwinkel, gibt an, in welchem Winkel die virtuelle Kamera die Szene aufnimmt. Das kann man sich wie ein Zoomobjektiv bei einer echten Kamera vorstellen, wo man einstellen kann wie viel man von der jeweilige Szene auf dem Bild haben möchte. Für einen Herkömmlichen 4:3 oder 5:4 Monitor beträgt das Field of View etwa 75°.

Das Extrembeispiel: Normale Ansicht vs. 360° Sicht

Das Field of View bleibt bei vielen Spielen statisch, in seltenen Fällen wie beim Nitroboost in Need For Speed verändert sich das Field of View um so eine perspektivische Verzerrung zu erzeugen. Weiters ist es nicht unüblich in Multiplayerspielen das FOV zu erhöhen um damit die Übersicht zu steigern

Ein extrem großer Blickwinkel fördert zwar die Übersicht, verzerrt aber auch das Bild stark
 
Zuletzt bearbeitet:
Bitte alle Vorschläge, Wünsche, Kritik zum "[FAQ] 3D Jargon" hier rein...
Freue mich auch über Ergänzungsvorschläge oder bessere/einfache Formulierung, sobald das FAQ fertig ist

Aktueller Stand 12.09.2006 21.30Uhr:

Einleitung
Grundbegriffe
Virtuelle Geometrie
Effekte

Licht und Schatten
Sonstiges


Wichtig: FAQ ist noch nicht komplett!
 
Zuletzt bearbeitet:
Sorry, aber wenn du ne FAQ erstellen willst, dann solltest du selbst auch schon einmal etwas mehr Vorarbeit leisten als nur eine Gliederung zu erstellen. :rolleyes:
 
Häh?! Heißt das jetzt das du dieses Projekt in Arbeit hast? Oder sollen wir dir jetzt sagen was in deine FAQ gehört? Nur Gliederung ist aber recht wenig für den Anfang, "Erstelung 3.9.06" ist dann jawohl auch etwas übertrieben.
 
Nur keine aufregeung, es ist alles schon geplant und vorbereitet, allerdings kann man nicht alles auf einmal copy und pasten. Desswegen wird es ca 1 oder 2 Tage dauern, biss ich alles in schöner Vormatierung übertragen kann.
Ich bitte um Verständniss!
 
Sieht doch jetzt schon besser aus ;)

Freue mich auf mehr weil es für mich verständlich geschrieben ist die Bilder sind auch gut zum Erklären weiter so*daumen hoch*
 
Danke!
Ich hoffe es ist alles verständlich und richtig (ich bin auch nicht perfekt und verwechsle manchmal sachen), wenn nicht bitte gleich reinschreiben!
Wie siehts mit der Bildergröße aus?. es werden insgesamt etwa 15.20 Bilder á 70kb reinkommen. Ist das zu groß? Oder haben heute schon die meisten DSL?

EDIT:
Hab jetzt im Inhaltsverzeichnis hinzugefügt, welche Punkte geplant sind
 
Zuletzt bearbeitet:
Wirklich sehr schön gemacht, so weit es bis jetzt ist.
Gut anschaulich, auch anhand der 2 Bilder.
N!ce work
:)
 
Muss mich entschuldigen...
Habe in der Hektik, in meiner Freizeit so schnell wie möglich sämtliches Material zu übertragen irgendwie die Grundbegriffe glöscht... Das wird dann ja noch eine lange Nacht.
Bitte um Verständis!
 
Zuletzt bearbeitet:
Nur die Ruhe ;) Was bis jetzt zu lesen ist, ist super interessant und ich bedanke mich hiermit gleichmal dafür.
 
Echt klasse Sache, versteh ich das auch mal:D

Gut erklärt und die Grafiken bewirken den Rest, echt genial :cool_alt:
 
Statusupdate

So, das Kapitel "Effekte" ist hiermit abgeschlossen. Bin nur noch am Suchen eines Bildes, das Lens Flare darstellt.
Das Kapitel Licht und Schatte ist leider noch nicht fertig, weil ich noch an ein oder zwei formulierungen bastle. Es ist garnocht so leicht die ganzen Techniken ohne Mathematik und Fachbegriffe zu erklären.

Bis morgen sollten allerdings die letzten beiden Kapitel fertig sein!
 
Wirklich sehr gut gemacht:daumen:

Alles sehr anschaulich und die Grafiken tun den Rest dazu bei.

Trotzdem ein kleiner Kritikpunkt: Mir ist aufgefallen das hier und da ein par Satzzeichen fehlen und kleinere Sachen wie mal ein Leerzeichen vergessen - also nix weltbewegendes...
 
Zurück
Oben