• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Sculpties Grundlagen

Moe McAlpine

Freund/in des Forums
Anmerkung:
Im Rahmen unserer Aufräumarbeiten haben wir diesem tollen Beitrag von Timmi einem separaten Thread gewidmet.
Das Original ist hier zu finden:
http://www.slinfo.de/phpbb/viewtopic.php?p=148683#148683

Wer noch eine Bewertung abgeben möchte, bitte im Original voten.

LG
Moe
--------------------------------------------------------------------------------


Sculpted Prims – Grundlagen Teil 1

von Timmi Allen

Begriffserklärungen

Sculpted Prim:
Ein Sculpted Prim (geformtes Prim) ist ein 3D-Körper, dessen Form durch eine vorgegebene Anzahl von Punkten im Raum (Raum = 3D-Raum mit den Achsen x, y, z) gebildet wird. Jeder Punkt hat eine Raumkoordinate aus diesen 3 Werten. Die Übertragung der Raumkoordinaten in SL erfolgt durch ein Bild (Textur, Sculpt-Map). Dabei sind die Farbwerte der Pixel ein Ausdruck der Raumkoordinate des jeweiligen Punktes. Die X- Achse wird aus dem roten Farbwert, die Y-Achse aus dem grünen Farbwert und die Z-Achse aus dem blauen Farbwert abgeleitet.

Die verwendeten Bildformate erlauben Farbwerte von 0 bis 255 je Achse. Der Wert x=127, y= 127, z= 127 bildet dabei den Mittelpunkt. Das bedeutet, eine Sculpt-Map bei der alle Werte 127,127,127 betragen (einheitliches Grau), würde als Prim alle Punkte im Mittelpunkt zusammenfassen.

Punkt (Vertex Mz. Vertices):
Ein Punkt ist ein unendlich kleines Objekt mit einer einzigen Raumkoordinate x, y, z. Ein Punkt kann keine Textur haben, da er unendlich klein ist.

Linie (Edge Mz. Edges):
Verbindung zwischen zwei Punkten mit dem Anfangswert des 1. Punktes (x1, y1, z1) und dem Endwert des 2. Punktes (x2, y2, z2). Eine Verbindung ist unendlich dünn und kann daher keine Textur haben. Eine Verbindung ist in SL nicht sichtbar.

Fläche (Face Mz. Faces):
Raum zwischen mindestens drei Linien (bzw. drei Punkten). Die Fläche ist unendlich dünn, hat aber eine durch die Linien begrenzte Ebene. Eine Textur kann diese Ebene sichtbar machen, wobei die Textur in SL nur auf einer Seite der Ebene anwendbar ist.


Vorgaben der SL Sculpted Prims:

Die Auflösung der Sculpties beträgt im LOD1 (Level of Detail1 – Kamera nahe am Objekt) 33 x 33 Punkte.
Im LOD2 (Kamera entfernt vom Objekt) verringert sich die Auflösung auf 17 x 17 Punkte.

Das bedeutet, dass die sichtbare Form eines Objektes davon abhängig ist, welche wesentlichen Punkte der 3D-Form im LOD1 bzw. LOD2 dargestellt werden.

1. Regel: wichtige Punkte der Form liegen im 17 x 17 Raster, zusätzliche Details im 33 x 33 Raster.

Achtung!

Ein Aspekt, der häufig für Verwirrung sorgt ist das Raster; 33x33 oder 32 x32; was ist richtig?
Dazu ein kurzer Ausflug in die mathematische bzw. geometrische Theorie.

Eine Fläche, die in 32 x 32 Quadrate unterteilt ist, benötigt genau 33 x 33 Punkte um alle Quadrate darzustellen.
Also immer die Anzahl der Flächen + 1 ist die Anzahl der benötigten Punkte.

8 x 8 Quadrate = 8 + 1 also 9 x 9 Punkte
16 x 16 Quadrate = 16 + 1 also 17 x 17 Punkte
32 x 32 Quadrate = 32 + 1 also 33 x 33 Punkte

(wer’s nicht glaubt kann das gern an einem Blatt kariertem Papier nachvollziehen)

Merke:

SL benötigt Punkte um daraus die dazwischen liegenden Flächen zu berechnen und darzustellen. Die Sculpt-Map liefert die Punkte während eine „normale“ Textur die Flächen „bemalt“.
 
Sculpted Prims – Grundlagen Teil 2

von Timmi Allen


Darstellung im Second Life Viewer


Eine Sculpt-Map hat in der höchsten Detailgenauigkeit eine Auflösung von 33 x 33 Vertices (Punkte). Der Second Life Viewer interpretiert die Map in folgender Form:

Für den SL-Viewer ist die erste Reihe unten in der Sculpt-Map und die letzte Reihe oben. Gelesen wird von links nach rechts.

1. Reihe (unterste Reihe in der Map)

Besonderheit: in der ersten Reihe wird nur der mittlere (hier der 16.) Vertex gelesen und dessen Wert auf alle anderen dieser Reihe übertragen. Daher sind in der ersten Reihe alle Vertices in einem Punkt zusammengefasst

2. bis 32. Reihe (von unten nach oben gezählt)

Hier werden alle 33 Vertices von links nach rechts gelesen und deren Werte für die Form des Prims verwendet.

33. Reihe (oberste Reihe in der Map)

Besonderheit: in der letzten Reihe wird ebenfalls nur der 16 Vertex gelesen und dessen Wert auf alle anderen dieser Reihe übertragen. Daher sind auch in der letzten Reihe alle Vertices in einem Punkt zusammengefasst

Damit sind für ein Sculptie insgesamt 31 x 33 + 2 Vertices = 1025 Vertices maximal nutzbar. Die Spezifikation bezieht sich auf ein Sculpt-Map mit genau 33x33 Pixel. In Sl ist dieses Format aber nicht vorgesehen.

Sculptie Typen

Der SL Viewer interpretiert 4 verschiedene Sculptie Typen, wobei der Standart Typ SPHERE ist. Alle anderen Typen müssen im Prim über ein kurzes Script angesteuert werden. Die Typen unterscheiden sich in der Art, wie eine 3D-Form an den Nähten (Seams) geschlossen wird.

1. Typ SPHERE

Bei diesem Typ wird der Sculptie komplett geschlossen. Die 33. Vertices einer jeden Reihe werden ignoriert und durch die 1. Vertices der Reihe ersetzt. Die Vertices der ersten bzw. letzten Reihe werden oben und unten mit der jeweils davor liegenden Reihe verbunden, so dass der Körper vollkommen geschlossen ist.

llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_SPHERE]);

2. Typ TORUS

Auch hier wird der Sculptie komplett geschlossen. Allerdings werden hier auch die Vertices der oberen mit denen der unteren Reihe verbunden. Das ist als ob man einen Zylinder biegt und das obere mit dem unteren Ende verbindet.

llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_TORUS]);

3. Typ PLANE

hier wird der Sculptie nicht geschlossen. Alle Vertices (auch die 33.) werden so dargestellt wie die Werte der Map es vorgeben. Dieser Typ eignet sich zum Beispiel für aufgesetzte Reliefs.

llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_PLANE]);


4. Typ CYLINDER

Hier wird der Sculptie nur an den Seiten geschlossen. Also wie bei SPHERE werden wieder die 33. Vertices einer Reihe durch den Wert der 1. Vertices ersetzt. Allerdings werden hier nicht die obere und untere Reihe in einem Punkt geschlossen sondern alle Vertices dieser Reihen werden gemäß ihren Werten dargestellt. (Offenes Rohr)

llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_CYLINDER]);
 
Sculpted Prims – Grundlagen Teil 3

von Timmi Allen



Sculpt-Map und Bildformate in SL

Second-Life erkennt nur Bildformate an, die auf 8x8 Pixel bzw. ein Vielfaches davon verwenden. Maximal jedoch eine Bildgröße von 1024 x 1024 Pixel. Alle anderen Formate werden durch Auslassen von Pixel auf diese Formate reduziert.
Das bedeutet, eine 32x32 Map enthält nicht alle Informationen die ein Sculptie benötigt, da jeweils eine Reihe und eine Spalte fehlen.

Das nächst größere Format von 64 x 64 Pixel wird daher mindestens empfohlen. Hier liest der Viewer das erste und dann jedes zweite Pixel, wobei das dazwischen liegende Pixel übersprungen wird. Nur am Ende liest der Viewer ohne Auslassung auch die letzte Reihe um auf die geforderten 33 Vertices zu kommen.

Praktische Anwendung

Nach oben genannter Spezifikation sollte eine Sculpt-Map mit genau 33x33 Pixel erstellt werden. Diese wird dann durch verdoppeln der Pixel auf ein Format von 66x66 Pixel gebracht.(Photoshop, Paint Shop Pro oder andere Bildbearbeitungsprogramme) Anschließend wird rundherum genau ein Pixel abgeschnitten. Die Map erfüllt jetzt alle Anforderungen, zumindest theoretisch. In der Praxis hat sich gezeigt, dass es sinnvoll ist, diese Map von 64x64 noch einmal durch verdoppeln der Pixel auf 128x128 hochzurechnen und dann „lossless“ also ohne Kompression in SL zu laden.

Leider gibt es im Viewer immer noch einen Bug, der sich darin äußert, dass Sculpties manchmal ungenau dargestellt werden und dann wieder genau.

Für mein Sculpty Experiment 1 ( http://de.youtube.com/watch?v=Jd-LUxSPIl0 ) habe ich eine 128 x128 Map verwendet. Beim ersten Hochladen wurde alles korrekt angezeigt. Als ich mich das nächste Mal einloggte war der Sculptie verzerrt. Das ist ein Ausdruck dieses Bugs. Der Bug ist bekannt und ich hoffe er wird bald behoben.


Eine zweite Möglichkeit besteht darin für die Sculpt-Map das Format 1024 x1024 zu nutzen. Der Viewer holt sich aus dieser Map nur die relevanten Punkte, der Bug tritt hier nicht auf, da die benachbarten Pixel fast identische Werte haben.
Nachteil sind die langen Ladezeiten und ein sogenannter „Origami“-Effekt. Diesen Effekt hat Torley Linden mal in einem Foto bei meinen Kühen festgehalten: http://snapshots.slbuzz.com/torley-linden/2007/07/14/9801


Berechnung der Sculpt-Map in verschiedenen 3D-Programmen

Das Ziel aller Berechnungen der Sculp-Map (Baking) muss es sein eine Map mit genau 33 x 33 Pixel zu erstellen, in der jeder Pixel genau ein Vertex mit seinen Raumkoordinaten repräsentiert. Diese Map wird dann wie oben beschrieben in das Format 128 x128 umgerechnet. Für die meisten 3D-Programme gibt es mittlerweile mehr oder weniger gute Exporter in Form von Plug Ins oder Scripts. Die dabei verwendeten Algorithmen sind sehr unterschiedlich.

So verwenden Maya oder 3D-Wings Exporter, die genau die Werte der Vertices berechnen, während z.B. Blender nur die Flächen zwischen den Vertices berechnet. Daher muss bei Blender eine hohe Auflösung für die Berechnung gewählt werden um eine gute Annäherung zum eigentlichen Wert des Vertex zu erreichen. Diese hohe Auflösung wird dann in einem Bildbearbeitungsprogramm wieder auf 33x33 Pixelgenau heruntergerechnet um anschließend in das Format 128x128 gebracht zu werden.

Beide Methoden haben Vor- und Nachteile. Natürlich ist eine genaue Berechnung mit 33x33 Pixel von 3D-Wings sehr einfach und effektiv, gestattet aber nicht die Berechnung einer 1024x1024 Map.

Daher sollte man genau betrachten, welche Methode das eigene Programm verwendet um die Map zu berechnen.
Bei Blender macht es keinen Sinn, die Map von vornherein auf 33x33 berechnen zu lassen, da Blender dann nur einen Mittelwert der Fläche bildet und nicht den Wert des Vertex.
 
Verzerrte Darstellung der Sculpi´s

Hallo!

Ich habe ein Problem mit der Darstellung meiner Sculpiprims im SL.
In der nähe Betrachtet sieht die Sculpiform perfekt aus...
gehe ich jedoch mit meinem Avatar weiter weg so verzieht sich die ganze Form total :-(
Was kann ich denn dagegen machen???
Für die Erstellung der Sculpitextur habe ich Blender benutzt.
... hoffe das ich mit meinem Problem hier richtig bin

Danke im Voraus!
 
Hi Zoltan

steht im übrigen auch nochmal ausführlicher hier weiter oben im Tread

" Vorgaben der SL Sculpted Prims:

Die Auflösung der Sculpties beträgt im LOD1 (Level of Detail1 – Kamera nahe am Objekt) 33 x 33 Punkte.
Im LOD2 (Kamera entfernt vom Objekt) verringert sich die Auflösung auf 17 x 17 Punkte.

Das bedeutet, dass die sichtbare Form eines Objektes davon abhängig ist, welche wesentlichen Punkte der 3D-Form im LOD1 bzw. LOD2 dargestellt werden.

1. Regel: wichtige Punkte der Form liegen im 17 x 17 Raster, zusätzliche Details im 33 x 33 Raster. "

Lod1 und 2 ist die Entfernung deiner Kamera zu einem Objekt

Grüssle Vadda
 
Versteh ich das eigentlich mit dem Sculptied richtig.. im Grunde genommen sehen wir nur ein Bild, was durch SL in eine Form gebracht wird und daher komplexe FOrmen (wie z.b. ein Delfin den ich hab) aus eine mPrim sein kann? Eine Art erweiterte Bumpmap?

Was ist der Nachteil von ihnen? dann könne man doch direkt alles draus machen, oder?
 
Moin moin,

die aufräumwütige Moe schlägt mal wieder zu - sorry.

Die Grundlagen bitte nur als "Sammlung von Grundlagen" nutzen, nicht für Diskussionen.
Es wird sonst schnell so unübersichtlich wie es einst war.

Darum nochmals die Bitte an die Moderatoren, falls es überhaupt machbar ist:


Die beiden Post von Zoltan und Vadda verschieben nach:

"Tipps und Diskussion: Einflussfaktoren optimale Darstellung"
http://www.slinfo.de/phpbb/viewtopic.php?t=15726

Die Frage von ElecV habe ich mal in die Pausenecke in die allg. Diskussion kopiert.

Meine Post hier einfach löschen, falls meine Bitte umsetzbar ist.
Ticket hatte ich geschrieben, ist aber wohl untergegangen oder ich hab was falsch gemacht.
Falss nicht möglich, kopier ich es wie ansonsten auch, einfach in die passende Kategorie.

Moe dankt und wünscht allen einen sonnigen Tag
:)
------------------------------

Edit und Update:

nun habe ich reichlich Antworten bekommen.
Alles klar und herzlichen Dank
Moe
------
 

Users who are viewing this thread

Zurück
Oben Unten