Jump to content
Unity Insider Forum

Marganeus

Members
  • Content count

    17
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Marganeus

  • Rank
    Member
  • Birthday 09/14/1986

Profile Information

  • Gender
    Male
  1. Marganeus

    Diese bösen Draw Calls

    Bin mir auch nicht zu 100% sicher, würde aber sagen, dass jedes Objekt ein eigenen DrawCall erzeugt. jedes Material auch eines. Wenn du nun 2 Objekte hast, welche auf das selbe Material zugreifen, müssten 3 DrawCalls rauskommen. Wenn beide Objekte unterschiedliche Materials verwenden kommen natürlich pro Material 1 DrawCall dazu. Wie du schon sagst, werden bei unterschiedlicher Belichtung weitere DrawCalls erzeugt. Um aber aus 2 Objekten 1 DrawCall zu machen, müsstest du sie zu einem Objekt machen (Combine Meshes). Wie gesagt, nicht zu 100% sicher, denke aber das so gelesen zu haben.
  2. Marganeus

    Diese bösen Draw Calls

    Okay, danke. Werden wir machen.
  3. Marganeus

    Diese bösen Draw Calls

    Kurze Info für die die es Interessiert. Wir sind zu dem Ergebnis gekommen, dass wir beide Systeme verwenden. Wir haben ein Grund-Terrain, welches per Heightmap in Unity erstellt wird. Alle anderen Themen die oberhalb oder unterhalb des Grund-Terrains sind, werden per Mesh gemacht. Wir werden zusätzlich das Unity Terrain als Mesh exportieren und dort dann die Höhleneingänge sowie Felsvorsprünge etc. zu einem Mesh zusammenfassen, damit wir nur ein Mesh Terrain am Server haben.
  4. Marganeus

    Diese bösen Draw Calls

    Wie viele Terrain angezeigt werden, kann man noch immer entscheiden (wobei dies nicht über LOD läuft, sondern vom Server gesteuert wird ). Das Problem mit den Textur Kanten verstehe ich. Vor allem um so mehr Terrains wir haben, um so mehr muss angepasst werden. Aber dies sollte ja prinzipiell nur einmal gemacht werden müssen. Wie würdet ihr sinnvoll Höhlen bei einem Unity Terrain erstellen? Ich kenne bisher nur die Depth Mask Methode. Gibts da evtl noch andere? Funktioniert diese Methode überhaupt zu 100%? Wir hatten bisher immer das Problem, dass bei reingehen in eine Höhle alles super passt, sobald man aber raus geht, flackert das Terrain kurz durch. -.-
  5. Marganeus

    Diese bösen Draw Calls

    Achso, habe nicht genau das Skript angeschaut. Das gibts auch genau andersrum.
  6. Marganeus

    Diese bösen Draw Calls

    Naja, das Skript erstellt ja "nur" ein Mesh aus dem Terrain. T4M kann ja zusätzlich noch Texturen und Materials auf das Mesh zeichnen, kann auf dem Mesh Bäume etc. platzieren und vieles mehr.
  7. Marganeus

    Diese bösen Draw Calls

    Wir erstellen ein Open World MMO-RPG. Dort wird es doch die eine oder andere Höhle geben. Danke für die schnelle Antwort! Die Trees können wir auch mit anderen Programmen machen, die speziell darauf ausgelegt sind. Das sollte nicht das Problem werden. Viel interessanter wird es dann bei den Nathlosen übergängen von den Terrains. Wir würden das ungefähr so machen, dass wir das Terrain in Unity erstellen, mit Stitchscape die übergänge anpassen lassen, das Terrain dann als Mesh exportieren und dieses dann in mehrere kleinere Mesh Terrains zerschneiden (weg. z.B. Terrain LOD). Wir brauchen so oder so einen Manager der angibt, wo welches Terrain ist, daher ist das auch kein Thema mehr. Demnach würde ich mich klar für das Mesh Terrain entscheiden.
  8. Marganeus

    Diese bösen Draw Calls

    Aber Performance technisch ist ein Mesh Terrain, dem von Unity überlegen oder sehe ich das falsch? Laut Video vom T4M hat man doch deutlich weniger DrawCalls (wenn man LOD vernünftig verwendet)? Es können zusätzlich Höhlen (wobei eine Höhle je nach Größe wieder ein eigenes Terrain ist) und Felsvorsprünge erstellt werden, man kann Materials (nicht nur Texturen) verwenden, übergänge zwischen Mesh und Terrain ist auch nicht wirklich super... Sie sind zwar wesentlich kleiner wie Unity Terrains, aber bei den Vorteilen würde ich sagen, dass das Unity Terrain klar verloren hat. Oder spricht etwas für das Unity Terrain?
  9. Marganeus

    Performance durch eigenen Skriptmanger gewinnen

    Hat super funktioniert. Wir haben jetzt einen Layer für das gesamte GUI (also quasi für dinge die eh immer angezeigt werden) und einen für PopUps, z.B. Fenster/Fehlermeldungen, etc.. Noch ein kleiner Tipp von mir, achtet auf die Z Achse in NGUI, das hat uns einige Zeit gekostet, bis die Buttons funktioniert haben... Die Z Achse sollte möglichst bei -1 stehen.
  10. Marganeus

    Performance durch eigenen Skriptmanger gewinnen

    Danke für die Rückmeldung. Ich werde es mal ausprobieren, klingt auf jeden Fall logisch. Aber warum wir dann nicht von Anfang an alles gezeigt? Ich habe in Unity selbst alles Aktiv und sage beim Starten, dass er die Fenster ErrorMessage und Characterlist deaktivieren soll. Das passiert und sie werden nicht angezeigt. Logge ich mich nun mit falschen Daten ein, wird die ErrorMessage eingeblendet (wobei diese über dem Login liegt). Wenn ich dort dann den Button klicke, wird die ErrorMessage wieder ausgeblendet. Das funktioniert im Prinzip genauso wie die Characterliste. Ich aktiviere und deaktiviere das Gesamte NGUI Objekt. Nur bei der Characterlist zeigt er alles an. Ich finde es ein wenig unlogisch, aber wenn es mit den Layern Funktioniert, dann soll es mir recht sein.
  11. Marganeus

    Performance durch eigenen Skriptmanger gewinnen

    Vielen Dank nochmal für den Tipp mit NGUI. Ich bin fasziniert, dass es so einfach geht, aber gleichzeitig super dynamisch ist. Ich habe jedoch leider ein Problem, was ich mir absolut nicht erklären kann. Ich habe in einer Szene 3 GUI Elemente. - Login Fenster - Charakterliste - Error Message Je nachdem welche Rückmeldung ich vom PhotonServer bekomme, blende ich das jeweilige Fenster ein/aus. So zumindest die Theorie... Wie man am Bild sehen kann, sind die Elemente in der Szene und im NGUI deaktiviert, werden jedoch weiterhin im Hintergrund dargestellt. Die Charakterliste sogar noch ein 2. mal etwas größer. Wir hatte versucht die Charakterliste mit einer 3D Kamera zu erstellen, wobei hier die Buttons nicht funktioniert haben (das werden wir uns noch genauer anschauen). Ich kann mir aber nicht vorstellen, dass es damit zu tun hat (wir haben die 3D Kamera wieder gelöscht). Die Frage zusammengefasst: Warum werden andere Kameras angezeigt, obwohl sie inaktiv sind?
  12. Marganeus

    Performance durch eigenen Skriptmanger gewinnen

    Da wären wir wieder bei den Texturatlanten. Vielen Danke für deine Antwort. Auf den 1. Blick schaut es so aus, als wäre es genau das was wir brauchen. Und was noch viel besser ist, dass es nicht nach einem schlichten 2D GUI aussieht.
  13. Hallo zusammen, ich arbeite an einem MMO, wobei die Performance natürlich einer der kritischsten Punkte überhaupt ist. Da ich gelesen habe, das vor allem GUI Elemente relativ viel Performance fressen können (vor allem wenn jedes Frame abgefragt wird, ob das Element nun angezeigt werden soll oder nicht), habe ich überlegt, ob nicht ein Skriptmanager sinnvoll wäre. Wir arbeiten in einer MVC ähnlichen Struktur, wobei eben jedes Fenster ein eigenes Skript ist. Da es natürlich viele Fenster geben wird, wollen wir nicht alle Skripts permanent durchlaufen lassen und abfragen, ob es gezeigt werden soll oder nicht. Es ist nun die Idee, dass wir einen Manager schreiben, welcher die Skripts einem leeren Objekt hinzufügt, und sobald man das Fenster wieder schließt, das Skript wieder vom Objekt gelöscht wird. Dieses System wollen wir auch auf diverse andere Objekte, welche eine Interaktion haben, anwenden. Da die Informationen von dynamischen Objekten vom Server kommen, würden die Skripts durch den Manager vom Server gesteuert werden. Wir glauben, dass wir dadurch einen Performance Gewinn erzeugen, da nur wirklich benötigte Skripts (was ja für jedes Objekt anders sein kann, auch wenn es das selbe Prefeb ist) vorhanden sind und somit nicht immer alles mögliche abgefragt werden muss, ob es nun ausgeführt werden soll oder nicht. Glaubt ihr, dass diese Lösung eine gute ist, oder habt ihr evtl. noch andere Ideen?
  14. Marganeus

    Texturen viel oder groß ?

    Okay, wunderbar. Vielen Dank für deine Hilfe, dass hat uns ein ganze Stück vorwärts gebracht! Lg Marganeus
  15. Marganeus

    Texturen viel oder groß ?

    Vielen Dank für die schnelle Antwort! Das hilft uns schon ein ganzes Stück weiter! Warum würdest du für alle dynamischen Objekte ein eigenes Material erstellen? Da würden wir doch gleich mal auf mehrere 1.000 Materials kommen... :/ Auf der einen Seite verstehe ich es, dass nichts unnötiges im Speicher hängt, aber wenn das laden mehr Performance kostet als das zwischenspeichern, würde es doch zumindest für Gruppierungen wie Waffen und Rüstungen, welche man ja überall sehen wird, sinn machen? Wir wollen für mehrere Objekte natürlich nur ein Material haben, eben aus den von dir genannten Gründen. Wie beschrieben wollen wir natürlich auch LOD verwenden (wir denken dann an UniLOD). Occlusion Culling werden wir sinnvoller weise nur in Regionen verwenden, welche viele Objekte haben (Beispiel Städte). Bzw. können wir das zusätzlich auch per Code steuern, da wir ja anhand der Server Informationen wissen, wie viele dynamische Objekte sich derzeit in einer gewissen Umgebung befinden und demnach eben zusätzliche Bereiche erzeugen. Danke für den Link, das schaut natürlich eleganter aus wie zusätzliche Materials mit kleineren Texturen.
×