Mittwoch, 21. September 2016

Avatar Rendering Complexity - Übersicht der Optionen

JellyDolls durch ARC-Vorgabe
Nachdem nun fast alle Second Life Viewer die neuen Funktionen für "Avatar Rendering Complexity" (ARC) unterstützen, werde ich hier mal die wichtigsten Informationen in einem Beitrag zusammenfassen. Vor allem, welche Optionen im Viewer bereitstehen und wo man sie findet.

Damit das Ganze nicht zu umfangreich wird, versuche ich die einzelnen Punkte in kompakte Abschnitte zu unterteilen, ähnlich dem Knowledge Base Artikel von Linden Lab, der ja leider nur in Englisch verfügbar ist.

Die folgenden Erklärungen und Bilder, beziehen sich alle auf den offiziellen SL Viewer. Abweichungen bei TPVs sind möglich, aber eher die Ausnahme. Ich werde diesen Beitrag noch erweitern, wenn sich neue Erkenntnisse ergeben. Und morgen versuche ich noch, einen direkten Link-Button zu diesem Beitrag in die Buttonleiste hier oben einzubauen.

Was ist Avatar Rendering Complexity?

Auf den kleinsten Nenner gebracht, ist ARC ein Zahlenwert, der angibt, wie schwierig es für den Viewer ist, einen Avatar darzustellen. Je größer der Wert, umso schwieriger ist die Darstellung. Der ARC-Wert kann dabei von einigen Hundert bis zu mehreren Hunderttausend reichen. Zur Berechnung des ARC-Wertes werden folgende Elemente herangezogen:
  • Avatar-Shape
  • System-Kleidung
  • Skin-Texturen
  • Tattoos
  • Alpha-Layer
  • Attachments (Prims, Sculpties, Meshes)

Jeder Avatar in Sichtweite des Viewers, der den voreingestellten ARC-Wert überschreitet, wird als einfarbige Silhouette dargestellt. Die Informationen zu 3D-Objekten, Texturen und Shapes, werden für diese Avatare dann nicht mehr heruntergeladen. Das wiederum erhöht die Performance im eigenen Viewer.

Was sind JellyDolls?

JellyDolls werden Avatare genannt, die aufgrund der eigenen ARC-Einstellung im Viewer nicht mehr voll dargestellt werden, sondern nur noch als einfarbige Silhouette mit vereinfachten Animationen. Je mehr Avatare als JellyDolls angezeigt werden, desto besser wird die Performance im eigenen Viewer.

Ob die Farben für JellyDolls einer Regel folgen oder nur zufällig vergeben werden, habe ich noch nicht herausgefunden.

Voreingestellter ARC-Wert

Beim ersten Start eines Viewers mit eingebauter ARC-Funktion, wird automatisch ein ARC-Wert ermittelt, der von der Hardware des Computers und von der Auswahl der Grafikeinstellung im Viewer abhängt. Dieser Wert kann jederzeit manuell angepasst werden.

Hinweis:
Der Button "Auf empfohlene Einstellungen zurücksetzen" in den Grafikeinstellungen, funktioniert meiner Ansicht nach nicht richtig. Bei mir wird dann immer ein ARC-Wert von 350.000 eingestellt, was ja im Grunde fast einem Deaktivieren von ARC entspricht.

Manuelle Einstellung des ARC-Wertes

Der ARC-Wert kann manuell in den Grafikeinstellungen geändert werden. Das geht sowohl im Hauptfenster der Grafikeinstellungen als auch in den erweiterten Grafikeinstellungen. Wo man letztendlich den Wert einstellt, ist egal. Der ARC-Wert heißt dort "Avatar Maximum Complexity"

Avatar Maximum Complexity im Hauptfenster für die Grafikeinstellungen
Avatar Maximum Complexity in den erweiterten Grafikeinstellungen
Wird der Schieber ganz nach rechts gezogen, ist der ARC-Wert unbegrenzt. Das bedeutet alle Avatare werden immer voll dargestellt. In einer der TPV-Treffen hat Oz Linden jedoch empfohlen, den Wert nicht auf unbegrenzt einzustellen, wenn man immer alle Avatare sehen will, sondern auf einen Wert kurz vor dem Maximum. Vorgeschlagen wurde von Oz der Wert 350.000. Damit werden wohl 99% aller Avatare voll dargestellt, aber es wird dennoch verhindert, dass Griefer mit Grafik-Crashern den Viewer zum Absturz bringen können.

Empfohlene Maximaleinstellung für ARC
Alternativ kann man die Avatar Maximum Complexity auch noch in den Debug Settings einstellen. Dort ist die Eingabe einer exakten Zahl möglich, während mit dem Schieber nur Sprünge auf relativ krumme Werte machbar sind. Will man zum Beispiel genau 80.000 als Wert haben, geht das im SL Viewer nur über die Debug Settings. Der Name der Debug Setting lautet "RenderAvatarMaxComplexity".

Genaue Eingabe des ARC-Wertes über die Debug Settings

Anzeige des eigenen ARC-Wertes

Es gibt zwei Möglichkeiten, sich den eigenen ARC-Wert im Viewer anzeigen zu lassen. Kurzfristig wird der ARC-Wert jedes mal angezeigt, wenn man etwas am Avatar ändert, das für die Berechnung der ARC relevant ist. Also Shape, Skin, Layer-Kleidung, Attachments, Alpha-Layer, usw.. Dann erscheint in der rechten oberen Bildschirmecke für 10 Sekunden eine Meldung zum geänderten ARC-Wert.

So sieht die Information in der rechten oberen Bildschirmecke aus:

Anzeige bei jeder Änderung der eigenen Komplexität
Klickt man auf den grünen Link, öffnet sich die englischsprachige Knowledge Base Seite zum Thema "Avatar Rendering Complexity".

Dauerhaft kann man sich den eigenen ARC-Wert (und den Wert aller anderen Avatare in Sichtweite) über den folgenden Menüpunkt anzeigen lassen:
> Erweitert > Performance Tools > Informationen zur Avatarkomplexität anzeigen

Ein- oder Ausschalten der Avatarkomplexität über diesen Menüpunkt
Wer das "Erweitert"-Menü nicht sehen kann, drückt einmal die Tastaturkombination Strg + Alt + D.

Mit der Aktivierung werden über den Köpfen aller Avatare, inklusive dem eigenen, drei Textzeilen mit Informationen angezeigt.

Die obere Zeile zeigt den ARC-Wert an (Komplexität genannt). Liegt er innerhalb des selbst gewählten Limits, ist die Zeile grün. Bewegt sich der ARC-Wert nah an der Limit-Grenze, wird die Farbe orange. Und wenn der Wert über dem Limit liegt, ist die Farbe rot und der Text wird in fetten Buchstaben angezeigt. Avatare mit roter Komplexitätsanzeige sind aber viel leichter daran zu erkennen, dass sie als JellyDolls herumlaufen.^^

   

Die mittlere Zeile zeigt die Entfernung eines Avatars zur eigenen Kamera an. Rang 1 ist immer der eigene Avatar. Rang 2 der Avatar, welcher der Kamera am nächsten ist, Rang 3 für den zweitnächsten, usw.

Die untere Zeile gibt die Größe der Oberfläche aller Attachments in Quadratmeter an. Dieser Wert kann, wenn er extrem hoch ist, einen Avatar auch zu einem JellyDoll machen, obwohl dessen ARC-Wert das Limit noch nicht überschritten hat. Den voreingestellten Wert, ab wann ein Avatar wegen seiner Oberflächengröße als JellyDoll dargestellt wird, lässt sich im aktuellen Viewer nur über die Debug Settings einstellen. Der Wert heißt "RenderAutoMuteSurfaceAreaLimit".

Voreingestellter Wert für das Oberflächenlimit ist 1000m²

Meldungen über die eigene Sichtbarkeit

Wenn sich der eigene Avatar in Sichtweite anderer Avatare befindet, zeigt der Viewer Meldungen an, ob entweder niemand, nur ein Teil, oder alle Avatare den eigenen Avatar vollständig sehen können. Ich habe es eben auf die Schnelle nur geschafft, zwei der drei Meldungen zu erzeugen und zu speichern. Die Häufigkeit dieser Meldungen beruht mehr auf Zufall als auf Regelmäßigkeit. Generiert werden sie vom Server der jeweiligen Region, auf der man sich befindet.


Zwei Meldungen vom Sim-Server.
Dazwischen gibt es noch die Meldung, das nicht
alle Avatare den eigenen Avatar sehen können.

Abschalten der Viewer-Meldungen

Möchte man die Viewer-Meldungen zum eigenen ARC-Wert, oder den Status der eigenen Sichtbarkeit bei anderen Avataren, nicht mehr angezeigt bekommen, dann kann man das abschalten.

Das geht in den Einstellungen unter
> Meldungen > Warn me if my avatar complexity may be too high
Dieser Eintrag muss aus dem oberen Textfenster "Immer anzeigen" in das untere Fenster "Niemals anzeigen" mit dem Pfeil verschoben werden.

Hier lassen sich die automatischen Meldungen zur ARC-Sichtbarkeit im Viewer deaktivieren.


Alternativ kann man auch in den Debug Settings den Wert "ShowMyComplexityChanges" ändern. Der Wert "0" schaltet die Anzeige der Meldungen aus. Jede Zahl größer als 0, gibt die Zeit in Sekunden an, die eine Meldung angezeigt wird.

Anzeigedauer der ARC-Meldungen (hier 10 Sekunden)

Vollständige Darstellung einzelner JellyDoll-Avatare

Wenn man seinen ARC-Wert so eingestellt hat, dass man viele JellyDolls um sich herum sieht, kann man einzelne Avatare auch individuell wieder vollständig anzeigen lassen. Dazu den Avatar mit der rechten Maustaste anklicken und im Kontextmenü "Komplett darstellen" auswählen. Diese Einstellung bleibt nur bis zum nächsten Viewer-Neustart gültig.

Avatar anklicken und "Komplett darstellen" wählen, schaltet die JellyDoll Anzeige aus
Der Avatar links ist der, der im ersten Bild violett angezeigt wurde (er hat sich inzwischen gedreht)
Die anderen beiden Auswahlmöglichkeiten im Kontextmenü sind:
"Normal darstellen". Damit wird die Darstellung des Avatars wieder über den ARC-Wert geregelt. "Nicht darstellen". Damit wird der Avatar weiter als JellyDoll angezeigt, aber seine Farbe wird gegen ein einheitliches Grau ausgetauscht. So zumindest meine Beobachtung, denn gelesen habe ich dazu noch nichts.

Tipps & Tricks

Grafik-Presets zusammen mit ARC nutzen
Mit den neuen Grafik-Presets, die mit dem ARC eingeführt wurden, lassen sich auch die eingestellten ARC-Werte mit abspeichern. Ich habe für mich fünf Presets angelegt, die ich für sinnvoll halte. Beim Speichern habe ich sie nur nach ihrem ARC-Wert benannt. Je nach Situation, aktiviere ich die Einstellung, die meine Performance im Viewer auf einem lagfreien Level hält.

Speichern geht einfach in den Grafikeinstellungen über den Button "Einstellung als Voreinstellung speichern" (1). Hier meine Auswahl der gespeicherten Einstellungen. Links sieht man das Fenster, das man über den Button "Voreinstellung laden" (3) öffnen kann, rechts ist das Aufklapp-Menü, das man über das Monitorsymbol in der oberen Viewerleiste öffnen kann.

 

Meine persönlichen Empfehlungen für Presets:
  • 20.000 - fast alle Avatare sind JellyDolls > gut für krass volle Veranstaltungen
  • 50.000 - etwa drei Viertel aller Avatare sind JellyDolls > gut zum Erkunden voller Sims
  • 80.000 - etwa die Hälfte aller Avatare sind JellyDolls > ist meist meine Standardeinstellung
  • 120.000 - nur noch wenige JellyDolls > für relativ leere Regionen, auf denen man die schweren ARC-Brocken trotzdem nicht anzeigen lassen will.
  • 180.000 - vereinzelte JellyDolls > nehme ich bei Treffen mit Avas aus meiner Friendlist.
  • 350.000 - keine JellyDolls mehr > wenn man alle Avatare sauber darstellen will.

Für Aufführungen, Konzerte, Modeschauen usw. empfehle ich eine restriktive Einstellung (20k oder 50k) mit anschließendem Rechtsklick auf die Performer, Musiker, Models und Auswahl von "Komplett darstellen".
.......................................................................................

Impostors anstelle von JellyDolls
JellyDolls sind eine besondere Art der Avatar Impostors-Funktion. Impostors sind vereinfachte Darstellungen von Avataren, Attachments und Animationen, ohne die Avatare dabei einfarbig anzuzeigen, wie bei den JellyDolls. Stattdessen wird eine grobe Objekt- und Texturdarstellung genutzt, die aber alles noch in den original Farben anzeigt.

Möchte man immer alle Avatare normal dargestellt bekommen, aber dennoch mit einer Einstellung etwas mehr Performance haben, kann man das über die Impostor-Einstellung machen. Dazu den ARC-Wert sehr hoch, aber den Impostor-Wert sehr niedrig wählen. Ein niedriger Impostor-Wert liegt für mich irgendwo zwischen 1 und 5.

Dieser Wert gibt an, wie viele Avatare komplett dargestellt werden, bevor alle weiteren Avatare die vereinfachte Berechnung erhalten. Einstellen kann man den Wert entweder in den erweiterten Grafikeinstellungen über "Max. Anzahl an voll dargestellten Avataren". Oder in den Debug Settings über "RenderAvatarMaxNonImpostors".

Hier werden 16 Avatare komplett Dargestellt, bevor
die vereinfachte Berechnung aller anderen Avatare startet.
Die Avatare, die voll dargestellt werden, sind die, die dem eigenen Avatar am nächsten sind. Als Impostors werden aber nur die Avatare berechnet, die nicht bereits über den ARC-Wert als JellyDoll dargestellt werden.
.......................................................................................

Objekte mit starkem Einfluss auf den ARC-Wert
Folgende Eigenschaften von System-Layern und Attachments, erhöhen den ARC-Wert besonders stark:
  • Sculpty-Kleidung (Attachment).
  • Haare und Schuhe aus Prims oder Sculpties.
  • Attachments und Tattoo-Layer mit halbtransparenten Texturen (also teils durchsichtig, teils mit Grafik).
  • Attachments mit Glanz- oder Leuchteffekt.
  • Animierte Texturen oder Media auf Attachments.
  • Getragene Partikel-Emitter.
  • Sehr schlecht erstellte Mesh-Objekte mit hoher Anzahl von Polygonen und Vertices.
.......................................................................................

Quellen:

27 Kommentare:

  1. Immer dann, wenn man seine Technik meint im Griff zu haben, kommt schon wieder was Neues daher. Seit dieser Umstellung leidet die Bewegungsflüssigkeit der Avis bei mir sehr. Sind mehr als 3 Avis in meiner Nähe geht es z. B. in ruckeliges Tanzen über. Für mich sind alle Avis sichtbar nur das Ruckeln und Megaläg setzt ein. Das könnte nun an diesem ARC-Wert liegen, den ich ja voll aufgedreht hab. Daher vorab mal Danke für diesen Tip. Ich werd mich mal mit reduzierten Komplexitätswerten durch die Welt bewegen und schauen, ob es wieder besser bis normal wird. :-)

    AntwortenLöschen
    Antworten
    1. meine ARC hab ich auch auf unbegrenzt,finde diese einfärbigen Avas auch Jelly Dolls genannt einfach nur schrecklich
      weil du das ruckeln ansprichst,Maddy schrieb schon an anderer Stelle unter "Meldungen vom TPV Treffen ,26.Aug."das dieses Lag Problem bzw.das absacken der FPS mit einem Update für WIN 10 zu tun hat,das scheints nicht so kompatibel mit SL ist
      hab inzwischen festgestellt das zum einen nicht auf jedem Sim diese Problem auftritt,zum anderen merkte ich,dass sich die FPS bei längerem Verweilen auf diesem Sim langsam wieder einpendelt,ob nun der Auslöser dieses ominöse Update oder die max.ARC Einstellung ist?

      Löschen
  2. Guter Hinweis Reini, das mit dem WIN10, das ja ständig Updates macht. Weiter wurde bei mir erst kürzlich so ein Zusatzupdate zu Win gemacht. Fraglich, ob man das alles vorübergehend "zurücksetzen" kann, bis das wieder alles mitnander kompatibel ist. Wenn ich könnte und wüßte, würde ich es versuchen... Im Moment scheine ich die Wahl zwischen tanzenden Avis in Zeitlupe (stockend, sehr abgehackt) mit Chatlag zu haben oder Gummibärenavatare, die sich bewegen. Fakt ist, so macht es nicht gerade Spaß.

    AntwortenLöschen
    Antworten
    1. Also, dein Ruckeln kann von diesem Windows 10 Update kommen. Es tritt damit vor allem auf, wenn du mit dem Viewer noch andere Programme offen hast und zwischen ihnen hin und her wechselst.

      Es könnte aber auch sein, dass dein Impostors-Wert eben auf ganz niedrig eingestellt ist. Deswegen prüfe einfach mal in den erweiterten Grafikeinstellungen, welche Zahl da bei dir steht.

      Hier noch mal der Fensterausschnitt zu den erweiterten Grafikeinstellungen, den ich oben schon im Beitrag gezeigt habe. Direkt unter der rot eingerahmten ARC-Einstellung, befindet sich der Wert für Impostors. (Der Eintrag heißt "Max. Anzahl an voll dargestellten Avataren"). Wenn du da auch eine 16 einträgst, ist dann das Ruckeln immer noch vorhanden?

      Löschen
    2. Ach ja, wenn das mit den Impostors nicht funktioniert und du das problematische Update von Windows 10 deinstallieren möchtest, findest du hier eine deutschsprachige Anleitung:

      >> Windows 10 Updates deinstallieren

      Für das Second Life Problem, muss man das Windows Update KB3176938 deinstallieren.

      Ich habe eben noch einmal nachgesehen, aber der aktuelle Stand in der JIRA zu diesem Problem ist immer noch auf "nicht behoben".

      Wenn du selbst mal nachsehen möchtest, findest du die Info zur Deinstallation auf der folgenden JIRA-Seite im Abschnitt "Workaround":

      >> Severe performance issues in all Second Life viewers after installing KB3176938

      Löschen
    3. Ganz lieben Dank für diesen Tip Maddy... Ich hatte tatsächlich die KB3176938 installiert und hoffe, dass ich das Deinstallieren hingekriegt habe, denn der erste SL-Test war überraschend besser. Mal schauen, ob das so bleibt :-)

      Löschen
  3. Angelika Schmertzin21. September 2016 um 21:20

    Ersteinmal vielen Dank Maddy für Deine wirklich tolle Erklärung. Vioele haben oder wollen es einfach nicht verstehen. und niemand ist gezwungen sich Jellys anzusehen. Die meisten suchen den Lag leider immer noch bei Linden und nicht bei sich selber. Ich persönlich finde diese Funktion sehr gut, kann mich nun auf allen Events gut bewegen und kann jeden voll sichtbar machen den ich sehen möchte

    AntwortenLöschen
    Antworten
    1. Wichtig ist, nach dem Deinstallieren die Update-Einstellungen auf manuelle Installation zu setzen, so dass du bestimmen kannst, welche Pakete von Microsoft installiert werden. Nur so lässt sich verhindern, dass dieses KB3176938 bis zur Lösung des Problems erneut automatisch installiert wird.

      Löschen
    2. Ich habe ja nun in den Update-Einstellungen von Windows nachgeschaut nachdem bei mir das Anniversary installiert wurde. Damit hat sich die Einflussnahme auf die Update noch einmal verringert. Man kann jetzt nur noch einstellen, wann der PC möglichst nicht mehr für Updates heruntergefahren werden soll (Nutzungszeit auswählen) oder ein benutzerdefinierten Neustart zu definieren (Neustartoptionen). Man hat keinen Einfluss mehr welche Update installiert werden und wann. Somit bringt das Deinstallieren glaube ich nicht viel, da das Update wahrscheinlich bei einem der nächsten Neustarts wieder drauf ist.

      Aber vielleicht irre ich mich und es gibt tatsächlich einen anderen Weg.

      Die Niki

      Löschen
    3. Deinstallieren sollte bi jedem Windows 10 funktionieren. Aber das Update dann auch gegen erneutes Installieren zu blockieren, geht wohl nur mit Windows 10 Pro. Ich kann es selbst zwar nicht nachvollziehen bei mir, aber hier ist ein Forum, in dem genau das Problem diskutiert wird, das auch im Zusammenhang mit SL auftaucht:
      >> FPS frieren ein seit Windows KB3176938 Update

      Löschen
    4. Ja es scheinen der MS Flusi und vielleicht auch XPlane die gleichen Probleme zu haben. Liegt ja vielleicht an dem von Dir erwähnten OpenGL.

      Das kann natürlich sein, dass Win10 Pro bezüglich der Update-Verwaltung mehr Möglichkeiten bietet.

      Bleibt zu hoffen, dass Microsoft bald das Problem behebt.

      Die Niki

      Löschen
  4. Was die Farben der Jelly Dolls angeht: Meines Wissens sind sie NICHT zufällig. Sondern bei jedem Avatar festgelegt, und zwar je nach dem Server auf dem ein Avatar "wohnt".

    AntwortenLöschen
    Antworten
    1. Hast du dafür irgendwo eine Quelle? Ich habe nämlich nichts gefunden dazu. Wissen würde ich es aber auch gern. :)

      Löschen
    2. Die Farbe ändert sich anhand des ersten Zeichens der Avatar UUID.

      Löschen
    3. Hast du das auf einem der TPV-Meetings gehört, oder steht das auch irgendwo in der SL Wiki?

      Löschen
    4. Mir war so, ja. Whirly hat es auch in den Kommentaren zum FS Release geschrieben und da sie eine lebendige Jira Datenbank ist, vertraue ich ihr da. Wirklich eindeutig denke ich steht es im Source Code.

      Löschen
    5. Nachtrag: Hier ist der Beweis den du gesucht hast, die Farbe basiert auf dem ersten Byte. http://hg.phoenixviewer.com/phoenix-firestorm-release/file/938723dfdfe9/indra/newview/llvoavatar.cpp#l8471

      Löschen
    6. Ok, danke!
      Im Viewer Source Code zu suchen, wäre mir sicher als letztes eingefallen. Linden Lab sollte das eigentlich noch irgendwo in dem Knowledge Base Artikel hinterlegen, denn das interessiert sicher nicht nur mich.

      Löschen
  5. allmählich fehlt mir der Durchblick,was dieses Update betrifft
    ein KB3176938 ist in meinem Updateverlauf gar nicht zu finden

    AntwortenLöschen
    Antworten
    1. falscher Alarm
      Windows macht mich fertig,dieses Update wurde für die Anniversary Version 1607 installiert,wobei ich diese Version noch gar nicht am laufen habe

      Löschen
  6. So, ich habe in der Button-Auswahlleiste ganz oben im Blog, auf der rechten Seite einen neuen Button mit dem Namen "ARC Info" hinzugefügt. Darüber lässt sich auch noch in ein paar Wochen diese Seite hier schnell aufrufen, nachdem sie durch andere Beiträge von der Hauptseite des Blogs verdrängt wurde.

    AntwortenLöschen
  7. Eine kurze Info von mir: Soeben ist bei meinem Win 10 das Anniversary Update installiert worden. Ich habe parallel jetzt Windows Fenster auf (und auch welche geschlossen). Dabei sehe ich keinerlei fps Einbußen. Erstaunlicherweise ist sogar die fps-Rate jetzt generell höher. Ich werde es weiter beobachten, ob es bei mir so bleibt, wäre ja super.

    Evtl. hat Microsoft ja inzwischen hier schon nachgebessert, wer weiß.

    Die Niki

    AntwortenLöschen
    Antworten
    1. Nein, nicht das eigentliche Anniversary Update ist der Auslöser, sondern ein Update, dass unmittelbar danach noch kommt und einen Fehler im Anniversary Update beheben soll. Schau einfach mal in die Updateliste, ob KB3176938 schon installiert wurde. Ansonsten bekommst du es mit dem nächsten Update von Microsoft wahrscheinlich noch installiert.

      Löschen
  8. Ahh, ok.... schade, hatte mich schon gefreut.

    Die Niki

    AntwortenLöschen
  9. P.S. Das letzte war bei mir heute KB3176936.

    AntwortenLöschen
  10. Kurze Info zum Problem mit dem Update KB3176938. Die Ursache soll wohl am Grafiktreiber liegen. Microsoft soll sich mit NVidia so geeinigt haben, dass NVidia es über sein Update fixed.

    Mal sehn, wann das ist.

    Die Niki

    AntwortenLöschen
    Antworten
    1. gut möglich das es über Nvidia bereingt wird(wurde)
      ich bekomme über Nvidias Experience regelmässig Updates und das FPS Problem ist seit einer Woche nicht mehr da

      Löschen