Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Experimente mit PBR-Materialien
#1
Heute haben Juno und ich mal ein bißchen mit PBR-Materialien experimentiert. Juno wollte sich eh ein paar mehr Pumps machen. Nach ein paar Versuchen mit Blinn-Phong (das alte Textursystem von OpenSim vor 0.9.3.0, wo es zusätzlich nur Normal Map und Specular Map gibt, die auch keine Sau verwendet), alten Linda-Kellie-Ledertexturen und von Outworldz nachträglich generierten Normal Maps haben wir uns an den nächsten Schritt gewagt: PBR-Materialien.

Eins war von vornherein klar: Damit auch diejenigen was zu sehen haben, die einen noch nicht PBR-tauglichen Viewer verwenden, wollten wir auch klassische Blinn-Phong-Texturen bereitstellen, aber auch wieder mit Normal Map und Specular Map, wenn's geht.

Texturen haben wir uns besorgt von ambientCG. Da gibt's eine Riesenauswahl, die Texturen sind ziemlich gut, und sie stehen unter Creative Commons CC0, also fast schon in der Public Domain.

Allerdings sind die Texturen so, wie sie da rauskommen, in OpenSim nicht verwendbar. OpenSim braucht nämlich eigentlich Materialien im glTF-Format und auch entsprechende Texturen. Die bietet ambientCG so nicht. Zumindest aber gibt's lose Texturen, mit denen man schon mal arbeiten kann, und genügend davon, um sie in quasi alles konvertieren zu können.

Es gibt normalerweise zwei Texturen in jedem Set, die man nicht braucht. Die eine ist "Displacement". Die andere ist "NormalDX", das ist eine PBR-Normal Map für DirectX. Alle bekannten OpenSim-Viewer laufen aber mit OpenGL, und dafür ist jeweils die "NormalGL".

Wie gesagt, für OpenSim muß erstmal konvertiert werden. Dafür haben Second-Life-Nutzer praktischerweise quelloffene Programme gebaut, etwa den hier erwähnten GLTF Packer (Windows only) oder das darauf basierende, hier erwähnte MakeGLTF (Windows, Linux). Beide kann man mit den Texturen aus den Packs füttern und glTF-Materialien generieren lassen. Ich habe dafür MakeGLTF verwendet.

Sonderlich kompliziert ist es nicht. Man kann die einzelnen Felder anklicken und dann über einen Dateiauswahldialog die jeweiligen Texturen auswählen. Dabei sollte man aber alle Felder befüllen, die man korrekt befüllen kann.

Bei den Texturen, die ich hatte, ging die "Color"-Textur ins "Base Colour"-Feld, die "NormalGL"-Textur ins "Normal"-Feld, die "Roughness"-Textur ins "Roughness"-Feld, und wenn es auch eine "AmbientOcclusion"-Textur gab, ging die ins "Occlusion"-Feld. Für "Emission" (Leuchten), "Alpha" (Teiltransparenz) und "Metallic" (Metallizität) hatte ich bei meinen Texturen nichts da, weil ich nur jede Menge Leder hatte und einmal Gummi für die Sohlen.

Wenn man alle Einzeltexturen eingestellt hat, klickt man auf "Save". Da, wo die unter "Base Colour" eingesetzte Textur liegt, wird dann ein Unterordner angelegt, und in dem landen eine glTF-Datei zur Definition des Materials und mindestens drei neue Texturen.

Mit einem PBR-tauglichen Viewer kann man dann die glTF-Datei als Material hochladen; die drei neuen Texturen kommen automatisch mit. Bevor das Material im Inventar abgelegt wird, wird es zumindest im Firestorm erst im Materialeditor angezeigt. Ich empfehle dringend, es unter einem neuen, weniger sperrigen Namen zu speichern. Die neuen Texturen bekommen den Namen dann auch an den Anfang gestellt. Wo man die dann parkt (mit unter "Materialien", in einem Unterordner unter "Texturen"), bleibt einem selbst überlassen.

Jetzt hat man ein Material, das man beim Bearbeiten von Objekten unter "PBR" auf der Texturseite (Firestorm) verwenden kann. Da könnte man es dann noch weiter modifizieren (einige helle einfarbige Materialien kann man prima nachträglich einfärben), aber das brauchen wir jetzt nicht. Angenehm ist, daß man zumindest im Firestorm alle PBR-Texturen zusammen skalieren, versetzen und spiegeln kann; bei den Blinn-Phong-Texturen muß man das jeweils einzeln.

Wie oben schon angekündigt brauchen wir jetzt aber noch was als Fallback für diejenigen, die PBR-Texturen nicht sehen können. Und wenn wir das schon mal machen, dann können wir das auch gleich ordentlich machen. Also nicht einfach nur eine Textur zum "Einfärben", sondern das volle Blinn-Phong-Programm mit Normal Map für Unebenheiten und Specular Map für Glanz. Nicht jeder, der den Firestorm 6 verwendet, hat ja einen untermotorisierten Toaster, der zu schwach ist, um sowas darzustellen.

Vorab: Genauso wie mit PBR wird es nicht aussehen. Es geht nur darum, daß es überhaupt gut und glaubwürdig aussieht. Das ist aber machbar.

Blinn-Phong arbeitet ja mit drei Einzeltexturen, von denen wir zwei ja schon in diesem Satz PBR-Texturen haben. "Color" ist wieder die "eigentliche" Textur, die man auch alleine verwenden könnte. Könnte man, wollen wir aber nicht. "NormalGL" kann man direktweg als Normal Map nehmen, jedenfalls hat das bei mir funktioniert.

Das einzige, was wir nicht haben, ist eine Specular Map. Aber die können wir uns bauen. Das "Rezept" habe ich wieder aus dem Second-Life-Forum. Kurz gesagt: Man nehme die "Roughness"-Textur, öffne sie in einem Grafikbearbeitungsprogramm, invertiere die Farben und speichere eine Kopie davon. Schon hat man etwas, was man als Specular Map verwenden kann.

Dann müssen die drei Texturen ("Color", "NormalGL" und die gerade gespeicherte Specular Map) noch mit dem Viewer hochgeladen werden und können dann zum Blinn-Phong-Texturieren verwendet werden.
Auf der Rolltreppe im Kaufrausch / Du nach unten, ich nach oben

Mein OpenSim-Blog: Aus Hypergrid und Umgebung
[-] The following 5 users say Thank You to Jupiter Rowland for this post:
  • Akira, Dorena Verne, Leora Jacobus, Manfred Aabye, Pius Noel
Zitieren
#2
Hier habe ich noch für faule Leute wie mir, eine iar.
Mit dieser man sich Material selber zusammenstellen kann.
Alle Texturen sind als Normaltexturen sowie PBR Materialtexturen verwendbar.
PBRTextureLibrary 584MB
https://www.mediafire.com/file/qsuuvu0wf...y.iar/file
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



[-] The following 2 users say Thank You to Manfred Aabye for this post:
  • Dorena Verne, Leora Jacobus
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste