• eng
  • esp
  • fra
  • ita
  • por
  • rss-icon
  • facebook-icon
  • youtube-icon
  • twitter-icon

Blender: Ziegel mit adaptive Subdivision/Microdisplacement

In diesem dritten Tutorial für Blender (aktualisiert auf Version 2.93) zur Erstellung einer 3D-Wand ausgehend von einem Foto werden wir sehen, wie Sie die Ziegel der Wand mit der Adaptive Subdivision erstellen, die auch als Adaptive Displacement oder Micropolygon Displacement bezeichnet wird, oder Microdisplacement, oder Tesselation, so viele Namen sind weil in Blender diese Funktionalität nicht einem einzelnen Befehl entspricht, wie beim "Displace Modifier", sondern einer Reihe von Einstellungen, die vorgenommen werden müssen (also nicht einen offiziellen Namen erhielt), weil in der Fachliteratur einige Funktionen auf unterschiedliche Weise aufgerufen werden, und weil diese Methode nicht nur eine, sondern zwei interessante Eigenschaften hat: Adaptivität und Mikropolygone.

 

Adaptive Unterteilung/Verschiebung:

Im vorherigen Tutorial https://www.graphicsandprogramming.net/deu/tutorial/blender/modellieren/blender-ziegelsteine-displace-modifikator haben wir mit dem Modifikator "Displace" eine Ziegelwand erstellt, die eine gleiche Anzahl von Scheitelpunkten/Polygonen verwendet um die Ziegel in der ganzen Wand zu erstellen, aber in einem komplexeren Fall mit einer längeren Wand könnten wir daran interessiert sein, die nächstgelegenen Blöcke klarer und detaillierter zu sehen, während die weiter entfernten Ziegel auch mit weniger Scheitelpunkten hergestellt werden können, da sie sind weiter weg und weniger sichtbar. Diese Funktion wird durch die adaptive Unterteilung realisiert: wie in der Abbildung zu sehen

Der der Camera am nächsten liegende Teil der Wand unten verwendet mehr Scheitelpunkte, um die nächstgelegenen Objekte darzustellen, während die weiter entfernten aus weniger Scheitelpunkten bestehen, mit geeigneten Reflexionen und Schatten, die zu einer geringeren Auflösung beitragen.

 

Mikropolygone:

Ein weiteres grundlegendes Merkmal der Mikroverschiebung sind die Mikropolygone, mit denen Sie einem Mesh erst während der Renderphase ausgehend von einem Bild Details hinzufügen können. Aus dieser Sicht erinnern die verwendeten Maps etwas an Bump Maps, die durch das Material kleine lichtempfindliche Details hinzugefügt haben, nur in diesem Fall sieht das Mesh beim Rendering wirklich verformt aus, als ob wir einen "Displace"-Modifikator verwenden würden. In Blender können wir auch die Größe der Mikropolygone (ab 0,5 px aufwärts) wählen, je größer sie sind, desto gröber wird die resultierende Störung des Mesh.

 

Erstellen von Ziegeln mit dem Microdisplacement:

Lassen Sie uns ein ähnliches Beispiel wie im vorherigen Tutorial zum Modifikator "Displace" verwenden: Erstellen Sie eine zentrierte Ebene, importieren Sie das Bild "diffuse_map.jpg", das die Wand darstellt, und rufen Sie das Addon mit "File > Import > Images as Planes" auf.

Wir importieren dann die Lampe aus dem Beispiel des vorherigen Tutorials, oder drücken die "Shift+A"-Tasten und wählen dann "Light > Sun", erstellen eine "Sun"-Lampe mit Strength:4.5 mit Position (X:-2.88183 m, Y:-1.41398 m, Z:2.8909 m) und Drehung (X:48.7941°, Y:-1.17007°, Z:297.408°).

Wir erstellen dann eine Camera, belassen die Standardwerte und mit Position (X:1.17253 m, Y:-2.66012 m, Z:-0.016343 m) und Drehung (X:90°, Y:0°, Z:22.2°).
Fahren wir nun mit dem Bau der Mauersteine in 4 Schritten fort:

1. Mikroverschiebung wird seit Jahren als "experimentelles Feature" eingestuft und funktioniert nur mit der Cycles-Rendering-Engine, daher, in der Registerkarte "Render Properties" des "Properties Window", wir haben "Render Engine:Cycles" und "Feature Set:Experimental" eingestellt.

2. Wählen Sie die Ebene im "Object Mode" aus, klicken Sie oben auf "Shading", um auf den Material-Arbeitsbereich zuzugreifen, in dem die Knoten vorhanden sind, drücken Sie die Tasten "Shift+A" und füge mit "Texture > Image Texture" die Displacement Map "displacement_map.jpg" hinzu. Immer noch mit den Tasten "Shift+A" erstellen wir den Knoten "Vector > Displacement", der die Intensität des Überhangs regelt, den wir zwischen der Textur und dem Port "displacement" des "Material Output" platzieren.

Auf diese Weise haben wir die Karte verbunden, aus der die Daten für die Verschiebung gelesen werden.
Um die Displacement-Ergebnisse besser kontrollieren zu können, trennen wir zunächst die "diffuse" Textur vom Shader "Principled".

3. Im vorherigen Schritt haben wir die Displacement Map mit dem "Material Output" verknüpft, aber der "displacement"-Port wurde nur von den "Bump Maps" verwendet, um kleine Details auf der Oberfläche zu simulieren; Jetzt wollen wir seine Funktionalität ändern, also greifen wir auf die Registerkarte "Material Properties" zu und ändern in "Settings > Surface > Displacement" die Option von "Bump Only" auf "Displacement Only" (nur "Displacement", da wir verwenden möchten diese Funktion nur für Verschiebung)

4. Wir wählen die Ebene aus und ordnen ihr einen Modifikator "Subdivision Surface" zu, der verwendet wird, um die Unterteilungsrate der Mikropolygone anzupassen, in der wir die Option "Adaptive Subdivision" aktivieren, um die Unterteilung zu aktivieren, die sich je nach Entfernung ändert von der Camera (und "Simple", um die Kanten der Oberseite unverändert zu lassen).

Mit dem Parameter "Dicing Scale" können Sie den Definitionsmaßstab der Mikroverschiebung sowohl für die "Rendered" Vorschau im 3D-Viewport als auch für das eigentliche Rendering ändern (um einfach an anderen Teilen der Szene zu arbeiten und Rechenressourcen zu sparen). Zum Beispiel

standardmäßig sind die Werte 1px für "Render" und 8px für "Viewport" eingestellt, das sind die Abmessungen der Mikropolygone, über die wir zuvor gesprochen haben, daher werden in "Render" kleinere Mikropolygone verwendet, während im "Viewport" größer, was die Berechnungen während der Vorschau erleichtert.
Diese Standardwerte können auf der Registerkarte "Render properties" im Unterbereich "Subdivision" geändert werden.

wo Sie eventuell kleinere Werte für "Render" einstellen können, jedoch nicht weniger als 0.5, oder "Viewport" größere Werte geben können, wenn Sie Ressourcenprobleme haben.
Im Unterpanel "Subdivision" sehen wir drei weitere Parameter, wie "Offscreen Scale", die die Definition der Teile eines Meshes angibt, die sich außerhalb der Camera-ansicht befinden. Bei hohen Werten von "Offscreen Scale" werden die Teile außerhalb der Sicht ressourcenschonend dargestellt, zum Beispiel indem man die Camera dreht und den "Offscreen Scale" Wert auf 25 setzt, wird in den eingekreisten Teilen am weitesten vom Aussicht,

während bei niedrigen Werten, zum Beispiel 1, die von der Camera-ansicht am stärksten ausgeblendeten Teile definierter sind.

Der Parameter "Max Subdivisions" hingegen legt eine Obergrenze für die Definition des Mesh fest: Auch wenn für eine bestimmte Entfernung mehr Unterteilungen als der eingegebene Parameter möglich sind, führt er keine durch. In der Tat, wenn wir die Situation mit dem Standardwert 12 mit einem Wert von 5 für "Max Subdivisions" vergleichen, stellen wir fest, dass die Anzahl der Unterteilungen selbst dann nicht zunimmt, wenn wir uns der Camera nähern, sondern an einem bestimmten Punkt aufhört .

Im letzten Parameter "Dicing Camera" können wir auch eine ReferenzCamera für die Berechnung der Unterteilungen einfügen, damit bei den Animationen keine Artefakte entstehen.

Zurück zur Realisierung unserer Wand, wie im Tutorial zum "Displace"-Modifikator, den wir als "Environment texture" in den "World Properties" einfügen, das hdr-Bild "neurathen_rock_castle_2k.hdr"

Da unsere Szene einfach und mit wenigen Scheitelpunkten ist, geben wir im Viewport auch eine Größe von Mikropolygonen gleich 1px an, um unser Objekt leichter beobachten zu können

Wir wechseln in den Ansichtsmodus "Rendered" und stellen fest, dass die Steine zu hervorstehen

Wir gehen dann zum Arbeitsbereich "Shading" und verringern im Knoten "Displacement" den Wert von "Scale" auf 0,015

ein Ergebnis zu erhalten, das unseren Wünschen besser entspricht

Durch Drücken der Taste 3 auf dem Ziffernblock im Viewport schauen wir auf die Seitenwand und bemerken, dass die Steine im Relief sind, aber "innerhalb" des Mesh verschoben sind, während wir möchten, dass sie nach außen ragen.

dann ändern wir den Wert von "Midlevel" (in unserem Fall setzen wir ihn auf Null)

um die Steine auf eine Ebene zu bringen.

Aus der Cameraansicht (erhalten durch Drücken der 0-Taste auf dem Ziffernblock) können wir bereits eine interessante Backsteinmauer sehen.

Verbinden wir nun die Textur der "diffuse map" wieder, ändern wir den Wert von "Specular" auf 0.177

und wir bekommen

Erhalten, wie im Fall des Modifikators "Displace", eine gute Form für die Ziegel der Wand.

Die adaptive Unterteilung führt zu Vorteilen, da Sie Speicherplatz sparen, schneller rendern und komplexere Szenen mit den gleichen Hardwareressourcen erstellen können, wobei die Scheitelpunkte mit der Entfernung von der Camera optimiert werden, mit einem Mesh das während der Modellierung hell bleibt phase, wodurch die Details in die Rendering-Phase verschoben werden. Auf der anderen Seite hat es noch einige Mängel:

- Kann mit der Cycles-Render-Engine verwendet werden, aber nicht mit Eevee.
- Indem die Reliefs nur im Rendering angezeigt werden, kann die Mikroverschiebung nicht für Objekte verwendet werden, die für den 3D-Druck bestimmt sind (eine Ebene mit einer zugehörigen Adaptive Displacement, in der Solid-View gibt es nur eine Ebene, ohne die mit dieser Methode hinzugefügten Reliefs, und so ist es führt zu einer anderen Software, in die sie exportiert wird)
- Im Modifikatorstapel muss sich die adaptive "Subdivision Surface" unten befinden, damit sie vor dem Rendern der letzte verwendete Modifikator ist; wenn es zuerst bewegt wird, verliert es einige seiner Eigenschaften: Nehmen wir als Beispiel eine "Asteroidenfolge"

aus diesem Objekt erstellt (ein Würfel auf den bereits ein zuvor nicht adaptiver Modifikator "Subdivision Surface" angewendet wurde)

mit "Render Engine:Cycles" und "Feature Set:Experimental", Material mit der Option "Surface > Displacement:Displacement Only" und Material mit einer "Noise Texture"-Textur mit "Displacement"-Knoten

und adaptiver Modifikator "Subdivision Surface" nach einem Modifikator "Array"

das ergebnis wird sein was du willst

Wenn wir jedoch den Modifikator "Subdivision Surface" über den Modifikator "Array" ziehen, so dass er sich zuvor so verhält, wird er sich "magisch" in einen nicht adaptiven Modifikator verwandeln und alle oben genannten Eigenschaften verlieren

Eine letzte Bemerkung: Wenn Sie Instanzen erstellen, denken Sie daran, die Camera vor dem Originalobjekt zu platzieren.

Wir speichern die Datei als "adaptivesubdivision.blend".

Das ist alles für dieses Tutorial zur Adaptive Subdivision; Wir haben gesehen, dass es ein sehr nützliches Werkzeug ist, auch wenn es manchmal Einschränkungen und unerwünschtes Verhalten aufweist. Wir hoffen, dass es in Zukunft verbessert wird und auch ein Standard für Blender wird.
Wir sehen uns im nächsten Tutorial, wo wir sehen, wie wir unserer Wand ein PBR-Material (Physically Based Rendering) geben, um sie so realistisch wie möglich zu gestalten. Happy blending!

Wenn Ihnen der Artikel gefallen hat, teilen Sie ihn mit einem Freund:

 

Gehen Sie zur Liste der Tutorials: > Blender <