AW: Erste Normalmapping Versuche
Trifft das nicht auf jede s/w map zu? Bzw. was meinst du konkret damit, würd mich über n paar Infos freun =)
Es geht dabei vor allem darum, die oft entstehende Verwirrung aufzudröseln. Festzustellen, dass es verschiedene Typen von Texturen gibt, die wiederum in mehreren verschiedenen Zusammenhängen genutzt werden können: Texturen mit einem Vektor Y, idR. s/w Maps, für Bump oder Displacement; Texturen mit 3 Vektoren Y/X/Z, RGB Maps, für Normal oder Displacement.
Und verschieden arbeitende Kanäle: Normale + Relief auf der einen, Displacement auf der anderen Seite.
Das ist vielen 3D Usern alles andere als klar.
Aufgrund der o.g. Verwirrung, die u.a. der Bezeichnung "Normalmap" zu verdanken ist, ist es bei dem Thema wichtig, die Texturarten und ihre Nutzung in den Kanälen zu erklären.
Wie Du anscheinend schon herausgefunden hast, ist eine Vektormap, die nur den Y-Vektor nutzt (wie man sie aus einer Textur oder andern Map gewinnen kann!), zwar hübsch bunt. Aber zu nicht mehr in der Lage als eine gewöhnliche s/w Reliefmap. Und genau da ensteht die Verwirrung: generelle Nutzung von Vektormaps verbessert im Normalenkanal im Vergleich zu einer alten Bumpmap erstmal garnix. Wenn ich eine Bumpmap nehme, kann ich da eine Vektormap draus machen - das ist aber genausowenig Qualitätsgewinn wie wenn ich mit einer Kamera mit HD Auflösung einen alten Röhren-TV abfilme: garkeiner.
Vektormaps im Normalenkanal oder Bumpmaps haben aber auch Gemeinsamkeiten, wenn die Vektormap durch sich überlappende Geometrie gewonnen ist: die Technik der Interpolation ("Weichrechnung") von Licht bei gleichzeitiger Nicht-Änderung der Geometrie.
Ebenso haben s/w-Maps und RGB-Maps (also 1- und 3-Vektormaps) neben den Unterschieden auch Gemeinsamkeiten bei der Nutzung im Displacementkanal: beide ändern die Geometrie, Vektormaps dabei aufgrund ihrer Natur etwas komplexer. So sie nicht einfach aus einer Höhenmap oder einem Foto errechnet wurden.
Du siehst, es macht durchaus Sinn, andere Begriffe als "Normalmap", "Bumpmap" oder Displacementmap" zu nutzen. Die
gibt es faktisch nicht, es gibt nur die Kanäle in Cinema, die jeweils etwas anderes tun, und das pro genutzter Y- oder Y/X/Z-Vektormap leicht unterschiedlich, wenn man Normale+Relief einerseits und Displacement andererseits vergleicht.
Dazu hab ich schon Bilder erstellt und feststellen können das Relief eine falsche Glanzlichtberechnung im vergleich zu Normal bzw. Displacemt an den Tag legt...
Das sieht mir eher danach aus, dass bei der Normalmap hier ein Vektor vertauscht ist. Ändere dazu die Parmeter im Kanal, Du kannst ja alle 3 Farben/Vektoren in Cinema umdrehen.
Wenn Du mit 9. in den Gamebereich gehst, dann ist es sinnvoll, auch auf die Technik von Parallax Mapping/Steep Parallax Mapping und der Displacement-bezogenen "Tessellation" einzugehen.
Vertex-, Pixel- und Geometry Shader nicht zu vergessen
Ich versteh kein Wort wenn ich ehrlich bin...
Oh, das sind gamespezifische Begriffe des Themas.
- "Tessellation" zeigt die Möglichkeit von Micro-Displacement (unser SPD) in Echtzeit. Hier werden Polygone passend unterteilt und dann die Vertices verschoben. halt wie bei unserem Displacement, nur in Echtzeit. Tessellation meint eigentlich nur die Unterteilung und ist seit DirectX 11 bisher nur auf ATI 5000er Karten zu finden. Ich habe Dir Screenshots aus dem Unigine-Benchmark dazu gemacht:
- Parallax Mapping verschiebt die schon gerenderten Pixel. Also weder Displacement (Geometrie) noch Bump/Normal-Berechnung (nur Licht und Schatten). Steep Parallax tut das mit gleichzeitiger Verdeckung:
Das Bild ist aus dem Text hier:
- Vector Shader arbeiten von der Wirkung her wie Cinemas normales Displacement, verschiebt also die Geometrie (die Vertices) aufgrund einer Map/Berechnung.
dazu wollte ich nur ganz kurz nebenbei auf den Geschichtlichen Hintergrund eingehen und das Fallout Beispiel mit einbrigen...
Dann das richtig
@kraid Wie kommst Du da drauf??