Blender uv-mapping: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 80: Zeile 80:
 
* Jedes Material das in den Objekten vorkommt benötigt so einen Node (Node kann in die Materialien auch mit copy und paste gesetzt werden.
 
* Jedes Material das in den Objekten vorkommt benötigt so einen Node (Node kann in die Materialien auch mit copy und paste gesetzt werden.
  
'''Baking'''
+
====Bake====
  
 
* '''Wichtig''' '''Es wird das gewählte Objekt in den gewählten Node gebacken''' -> den neuen Node auswählen (Rahmen muss drumrum sein) Der Node muss ausgewählt sein, damit beim Baken diesem das Ergebnis zugewiesen wird.
 
* '''Wichtig''' '''Es wird das gewählte Objekt in den gewählten Node gebacken''' -> den neuen Node auswählen (Rahmen muss drumrum sein) Der Node muss ausgewählt sein, damit beim Baken diesem das Ergebnis zugewiesen wird.
Zeile 93: Zeile 93:
 
Für alle Objekte wiederholen. Der Node kann auch mit Copy Paste dupliziert werden.
 
Für alle Objekte wiederholen. Der Node kann auch mit Copy Paste dupliziert werden.
  
''' Color Correction '''
+
====Bildoptimierung====
 +
''' Color Correction ''' Die Farben der Textur sind nicht so schön wie die des Blender Renderings. Es fehlt noch das Color Managment, das Blender für seine Renders verwendet (i.d.R. Filmic).
  
Die Farben der Textur sind nicht so schön wie die des Blender Renderings. Es fehlt noch das Color Managment, das Blender für seine Renders verwendet (i.d.R. Filmic).
+
''' Denoising ''' Auch das Entrauschen fehlt noch.
 +
 
 +
''' Bildformat für Three.js (sRGB)'''
 +
 
 +
Alle Probleme lassen sich innerhalb von Blender mit dem Compositor lösen.

Version vom 4. Februar 2022, 22:01 Uhr

Beim uv-mapping versucht man Texturen möglichst optimal auf einen Körper zu kleben. Dazu kann man Seams von Hand oder automatisch oder beides festlegen. An dieser Stelle "schneidet" Blender dann die Form auf.

Wichtige Shortcuts:

U - Unwrap Menü
Select Shortcuts
Shift - Select Klick
Command - Select Klick (Reihe markieren)
Ctrl + L - Linked (Faces etc. markieren)
...

Quickstart

  • Einen uv Bereich öffnen
  • Objekt(e) das/die gewrapt werden sollen markieren.
  • In Edit Mode wechseln
  • Unwrap Menü öffnet sich mit u. von da kann man Seams machen oder unwrappen.
  • Im kleinen Unwrap Menü bei mehreren Objekten einen kleinen Margin (z.B. 0.45) setzen, damit Platz für Schatten bleibt wenn diese gebaket werden.
  • Im ersten Schritt Gruppen bilden in ein Quadrat packen (egal wo nur nicht überlappen mit anderen Gruppen) auf etwa ein Viertel skalieren.
  • Am Ende über das Overlay Menü (im uv Fenster) Show Display Stretch anzeigen und auf passende Größe skalieren und final platzieren.

Tipps:

  • Zusammengehörige Gruppen auch zusammen auf der uv-Map platzieren (wenn man eine gemeinsame nutzen möchte). So kann man leichter neu organisieren, wenn sich an der Szene was ändert.
  • Arbeit kann smart uv mapping sparen wenn es nicht ganz optimiert sein muss.
  • In mehreren Schritten vorgehen
  • Mehrere Gruppen bilden.
  • Am Ende über Display Stretch optimieren.
  • Mit ctrl + L (Linked) ganze Objekte wählen (im uv Editor)

Addons

5_Textools

https://github.com/SavMartin/TexTools... it is A collection of tools that helps any texture artist with UV and texture related tasks. The main philosophy is to shorten typical steps into simple context-sensitive single clicks.

4_Texel Density Checker

This Blender addon can be used to solve a simple but serious problem when creating UVs. in 3d software in general when creating UVs you need to keep the aspect ratio between UV islands accurate otherwise the textures will not look perfect nor with the same details.

3_Zen Uv

https://blendermarket.com/products/ze... Zen UV is another addon that combines a set of tools that can be used for creating fast UV’s in Blender. its tools are intuitive and can help you do some complex UV unwrapping tasks with ease.

2_UVpackmaster

https://gumroad.com/l/uvpackmaster2 when you use this addon you will realize that it is one of the most efficient UV packing solutions for Blender because it is very fast and uses both the CPU and Cuda GPUs as well at the same time. so if you have a strong CPU and a strong GPU you will be able to pack the UVs super fast with maximum efficiency.

1_Uv Toolkit

https://blendermarket.com/products/uv... UV Toolkit is an addon that has a set of tools for fast and high-quality UVs creation within Blender. it comes with a lot of features that make the process of creating UVs faster easier.

Baking

Man kann das Lichtrendering statisch in eine Textur umwandeln. Das nennt man Baking. Natürlich ändert sich dann das Licht nicht mehr bei Bewegungen aber das kann enorm Resoucen sparen und man kann aufwändige Lichtsettings und Raytracing nutzen. Gerade bei Three.js kann das cool sein. Je nachdem wo der Fokus der Szene liegt.

Bake workflow für Three.js

Texturgröße für Three.js

Normalerweise reichen 2048 für eine Three.js Szene gut aus. Wenn man nur eine Textur hat, kann man auch mal 4096 nehmen. Das packen auch ältere Rechner locker (Stand 2021)

Externe high quality Textur erzeugen

  • Object Mode
  • Im uv Fenster neues Bild erzeugen
  • color white (background) - falls es einen Glimps gibt sieht das eher aus wie eine Reflection
  • kein alpha
  • blank
  • 32bit float nutzen (wichtig)

Als nächstes speichern wir die Textur als HDR 32bit Bild. Das nutzen wir später nicht so, aber hierdurch erzielen wir bessere Ergebnisse. Hinweis, Blender speichert Texturen auch innerhalb des blend Files aber auf diese Weise habe wir separaten Zugriff.

  • Image > Save As (Ordner wo blendfile liegt oder Unterordner) > Radiance HDR

Jetzt hat Blender das Bild als externe Resource gespeichert. Durch die hohe Qualität des HDR können wir später in der Bildverarbeitung eine schönes JPEG erzeugen, dass in Three.js genauso gut ausschaut wie in Blender.

Materialien zuweisen

Wir müssen den Materialien sagen in welche Textur sie gebacken werden. Das geht über den Shader Editor (am besten neuen Bereich Öffnen).

Tipp im Shader Editor kann man das seitliche Menü mit N toggeln.

  • Use Nodes muss angehakt sein
  • Objekt (z.b. Floor) ist aktiviert
  • Add Texture (Shift A) > Image Texture
  • Über Bild Icon die vorher erzeugte Textur mit dem Node verbinden.
  • Jedes Material das in den Objekten vorkommt benötigt so einen Node (Node kann in die Materialien auch mit copy und paste gesetzt werden.

Bake

  • Wichtig Es wird das gewählte Objekt in den gewählten Node gebacken -> den neuen Node auswählen (Rahmen muss drumrum sein) Der Node muss ausgewählt sein, damit beim Baken diesem das Ergebnis zugewiesen wird.
  • Es muss noch keine Verbindung zum Material gemacht werden.
  • Render Tab > Baking (Cycles muss als Render Engine ausgewählt sein)
  • Option Clear Image nicht aktivieren. So können wir Objekt für Objekt nacheinander draufrendern. Andernfalls wird das Bild bei jedem Bake Vorgang gelöscht.
  • Margin 16px erstmal lassen. Das kann man dann im Ergebnis prüfen ob der Abstand reicht und im Zweifel reduzieren.
  • Bei einem großen Bild (4069px) reicht eine kleinere Sampling Max z.B. 256
  • BAKE
  • Fehler mit Überlappungen kann man einfach "drüber" rendern. Sieht dann komisch aus wegen den Artefakten des vorigen Versuchs - geht aber trotzdem.

Für alle Objekte wiederholen. Der Node kann auch mit Copy Paste dupliziert werden.

Bildoptimierung

Color Correction Die Farben der Textur sind nicht so schön wie die des Blender Renderings. Es fehlt noch das Color Managment, das Blender für seine Renders verwendet (i.d.R. Filmic).

Denoising Auch das Entrauschen fehlt noch.

Bildformat für Three.js (sRGB)

Alle Probleme lassen sich innerhalb von Blender mit dem Compositor lösen.