Page 2 of 2

Re: Tutorials

PostPosted: Thu 4. Jun 2009, 11:22
by Kloetengott
Ich fang mal an mit der Übersetzung.
Erstmal die Kurzversion, da ich im moment weder Photoshop noch Hammer habe um einzelne Schritte präziser zu erläutern.

Übersetzung für die verbesserte Normalmap.
Eine gute normalmap lässt Texturen im Hammer plastischer wirken und hebt sich angenehm durch rauhere Strukturen von anderen Texturen ab.
Leider ist der Nvidia-normalmap-filter für realistische Tiefendarstellung in Source nur eingeschränkt zu gebrauchen.
Die Einschränkungen des Nvidia-Filters lassen sich aber umgehen indem man ein paar Tricks anwendet.

Vorbereitung:
Wir nehmen für das Beispiel eine Grundtextur. Diese sollte schon vorher Source-kompatibel hergerichtet sein, soll heissen sie sollte eine Auflösung von x² (zB 512*512) haben und wenn die Textur später Kachelbar sein soll, muss das JETZT gemacht werden, bevor wir beginnen eine normalmap zu erstellen.

Textur anpassen:
Die meisten Texturen aus freier Natur haben viele kleine unebenheiten die kaum wahrnehmbar sind, aber mit zu starker normalmap im Spiel übertrieben aussehen. Deshalb bereinigen wir unsere Textur zuerst ein wenig.
Der Gausssche Filter eignet sich hierfür. Mit der Stärke müsst ihr jedesmal ein wenig experimentieren, da wir nur kleine unebenheiten verringern wollen, die grobe Struktur unserer Textur aber möglichst klar und knackig behalten wollen.
Für Perfektionisten gibt es auch die möglichkeit nur die Flächen zu markieren die man "bereinigen" will (zB mit dem Lasso-Tool, oder mit einem der vielen auswahltools von PS) und dort den Gaussschen Filter entsprechend stärker zu benutzen.
Wie schon gesagt muss man das von Textur zur Textur abwägen.
Ist man mit der zu Grunde liegenden Textur fertig, startet man nun den:

Nvidia-Normal-Filter
Zu den einstellungen hier:
Bei Filter-Type würde ich 4 Sample oder 3x3 empfehlen, da wir eine gewisse Schärfe der normalmap behalten wollen.
Je höher der Wert hier gewählt wird, desto gröber/verwischter wird die normalmap.
Evtl. muss Invert Y angehakt werden. Das kommt darauf an ob ihr mit der Höhendarstellung im 3D Preview zufrieden seid, oder ob ihr der Meinung seid, das müsste genau umgekehrt dargestellt werden.
MinZ bleibt auf 0 und bei Scale habe ich mit einem Wert zwischen 6-8 gute Erfahrungen gemacht.
Die Height Source sollte auf Average RGB eingestellt bleiben.
Ein klick auf OK generiert uns unsere erste normalmap.
Soweit so unspektalär.

Normalmap Verbessern:
Damit das ganze im Spiel knackiger und realistischer Aussieht, erstellen wir jetzt mehrere Ebenen und Stärken unserer Normalmap. Dazu benötigen wir die Duplizieren-Funktion und ein wenig Fingerspitzengefühl.
Wir wählen unsere Ebene aus und klicken auf "Duplizieren". Es erscheint eine Ebenenkopie im Ebenenfester.
Wir wählen diese Ebene aus, und klicken in dem kleinen Auswahlreiter im Ebenenfenster auf "Ineinanderkopieren".
Siehe da, auf einmal wirkt die normalmap gleich viel schärfer und stärker konturiert.
Wiederholt diesen Schritt einmal.
Wählt danach die zweite Ebenenkopie aus und benutzt nun den Gaussschen Filter und diese Ebene etwas verwaschener Darzustellen. Ein Wert von 2-3 sollte gute Dienste leisten.
Nun kopiert ihr diese neue Ebene erneut 2 mal, und wendet auf die neueste Kopie erneut den Gaussschen Filter wie bereits beschrieben an.
Wir erstellen uns hier im Grunde genommen einzelne Ebenen der Höhenmap die nach hinten hin immer undeutlicher werden.
Wenn weitere Kopien und anwendungen vom Gaussschen Filter kaum noch Unterschiede bringen, seid ihr fertig und könnt die Ebenen zu einer einzigen Ebene zusammenkopieren (alle Ebenen auswählen und Auf eine Ebene reduzieren wählen).
Jetzt müsst ihr noch einmal den Nvidia-Normal-Map-Filter anwerfen, denn durch das ineinkopieren sind manche Farben enstanden, die zu kräftig geworden sind als das Source sie richtig interpriert. Wir wählen jetzt im Filter unter Alternate Conversions "Normalize Only". Das sorgt nur dafür, dass die Farben wieder einen Ton annehmen der von Source korrekt interpretiert wird.

Damit seid ihr nun fertig und könnt eure Normalmap im Spiel testen.

Hierzu noch ein paar Tipps:
Manchmal muss man diese Methode mehrmals mit verschiedenen Stärken oder verschiedenen Schärefn ausprobieren bevor man das optimale Ergebnis erhält.
Normalmaps die ZU stark sind, lassen oft die ganze Grundtextur komplett anders aussehen und werden bei schwachem Lichteinfall zu dunkel (Source berechnet ja Schatten für die normalmap-Höhen). Sehr starke normalmaps sehen also nur gut aus, wenn sie schön angestrahlt werden.

Man muss das ganze einfach ein paarmal probieren bevor man ein Gefühl dafür entwickelt.

PS: Das ganze war jetzt eigentlich keine Übersetzung mehr, sondern mehr eigene Erfahrungen die ich beim normalmap basteln gesammelt habe. Die Methode aus dem Original-Tutorial eignet sich für Source-EP1 nur bedingt, da die normalmap in diesen Beispielen zu stark wird. Für Engines wie zB die neue Unreal-Engine, eignet sich eine starke normalmap jedoch wunderbar.