Tiles Geschrieben 25. Februar 2013 Melden Share Geschrieben 25. Februar 2013 Mal zusammengefast wen man jetzt eine riesen Welt hat und diese einigermaßen schön gestaltet hat,muss diese exportier und zerschnibbelt werden, dann müssen da massenweise kleine Stückchen einzeln bemahlt werden. 1.Wir das nicht Problematisch bei einer sehr großen Welt die aus kp 200 vieleicht sogar 600 Stücken besteht? (Auch wen durch LOD nur 10-12 Sichtbar sind) Korrekt. Das wird problematisch. Deswegen verwendet man für solch grosse Welten normalerweise auch keine Meshterrains. Sondern gestreamate Heightmap Terrains. Da ist dann nur die Heightmap als Datensatz interessant. Eine einfache Greyscale Textur. Aber im Prinzip kannst du auch Meshteile streamen. 2.Wird das nicht auffälig wen ständig Texturkanten am Terrain-Ende sind? Das Problem hättest du auch mit einem Heightmapterrain. Wenn das sauber gemappt und gepinselt ist sollte der übergang nicht arg zu sehen sein. 3.Braucht man nicht eine UVW map um Hölen und Felsübersprünge ordentlich zu bemahlen? Jopp. Wie gesagt, das Ding muss gemappt sein. 4.Gibt das nicht Probleme beim Workflow wen man ständig umschalten muss zwischen den einzelnen Bereichen und das man beimgenauern anpassen des Terrains ständig neu exp/Importieren sowie neu zerschnibbeln muss? Genaues Anpassen des Terrains sollte schon vor dem importieren passieren. In deinem Modeler. 5.Anmahlen kann man ja eigentlich erst ganz zum schluss, währe das nich scheiße wen man dann fast fertig ist, und dann alles nochmal machen muss weil man ne höhenänderung irgetwo vornehmen muss? Fürs bemalen musst du keine Geometrie mehr ändern. Die sollte wie gesagt schon vor dem importieren passen. Also für kleinere bis mitlerre Terraingrößen find ich es noch verwendbar, aber bei MMO größen wird der Worflow glaube ich zu stressig und man kann sich garnich mehr richtig kreativ ausleben weil man die ganze Zeit mit der Technik rumdadeln muss...(Denke ich) Jopp, es ist deutlich mehr Arbeit ein Meshterrain zu züchten als ein Heightmap Terrain. Drum überlege wer sich ewig bindet ... Bei meinem Alister hatte ich keine andere Wahl. Meine Spielmechanik verträgt sich nicht mit Heightmap Terrains Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Marganeus Geschrieben 25. Februar 2013 Melden Share Geschrieben 25. Februar 2013 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. -.- Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Marganeus Geschrieben 26. Februar 2013 Melden Share Geschrieben 26. Februar 2013 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. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tiles Geschrieben 26. Februar 2013 Melden Share Geschrieben 26. Februar 2013 Mein Rat: macht nen Prototypen und testet das durch. Mich selber haben die Übergänge zwischen Heightmap Terrain und Geometrie jeck gemacht. Die kannst du einfach nicht wirklich sauber kaschieren. Deswegen bin ich dann auf T4M umgestiegen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Marganeus Geschrieben 26. Februar 2013 Melden Share Geschrieben 26. Februar 2013 Okay, danke. Werden wir machen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ricky-W Geschrieben 5. März 2013 Autor Melden Share Geschrieben 5. März 2013 So nun bin ich wieder einmal Ratlos oder auch zu dämlich . Es sollte doch so sein: 1 Material = 1 Draw Calls, 2 Objekte mit dem selben Material = 1 Draw Calls ( außer eines wird anders Beleuchtet dann 2 Draw Calls) Aber wieso ist es, wenn ich ein Objekt kopiere und einfüge, dass es dann bis zu 6 Draw Calls mehr sind, wo es eigentlich gleich bleiben sollte? Siehe Bild (Hütte ist doppelt) Lg Ricky-W Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mauri Geschrieben 5. März 2013 Melden Share Geschrieben 5. März 2013 Ich würde jetzt vermutet, dass sich auch die Drawcalls beim duplizieren des Objektes verdoppeln. (Ist aber nur ein Griff ins Blaue.) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ricky-W Geschrieben 5. März 2013 Autor Melden Share Geschrieben 5. März 2013 Müsste ja das gleiche Material sein und darum dürfte nicht mal ein Draw calls mehr sein! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Marganeus Geschrieben 5. März 2013 Melden Share Geschrieben 5. März 2013 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. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
koaangel Geschrieben 5. März 2013 Melden Share Geschrieben 5. März 2013 Selsbt wenn du 2mal das gleiche Modell hast, wird nur gebatcht, wenn es eine bestimmte Anzahl an Polygonen nicht überschreitet. Muss selbst erst nachschauen, wieviel genau das ist, aber ich denke mal, deine Hütte überschreitet diese Anzahl. €dit: Gefunden: Batching dynamic objects has certain overhead per vertex, so batching is applied only to meshes containing less than 900 vertex attributes in total. http://docs.unity3d.com/Documentation/Manual/DrawCallBatching.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BillyForce Geschrieben 5. März 2013 Melden Share Geschrieben 5. März 2013 @Ricky Hast mal das Static Häkchen oder das Combine Script versucht? Mit dem Script kannst aus Objekten die eh herumstehen ein Mesh machen, wenn sie dasselbe Material haben zB... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ricky-W Geschrieben 6. März 2013 Autor Melden Share Geschrieben 6. März 2013 THX für die Antworten, ein Freund hat ein Script gefunden Draw Calls Optimizer und testet es (da ist er von 10.000 DrawCalls auf 80 runter), nur was mich depremiert hat, das ich es anscheinend falsch verstanden habe, also ich dachte auch wenn es 10 Objekte habe und nur ein Material, dann wäre es nur ein Draw Calls (außer wenn Licht ecc.), leider ist es nicht so. Bei mir ist das Schiff 4 Draws wert und bei einem anderen habe ich gelesen ein Buch 7 , also komm ich ja noch billig davon . Aber was noch stand, 5 Draw Calls kosten ein FPS, aber warum habe ich mehr FPS bei dem Bild wo mehr Draws sind, müsste ja umgekehrt sein . LG Ricky-W Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 6. März 2013 Melden Share Geschrieben 6. März 2013 Die Info mit den 5 Drawcalls / Frame kannst du nicht so ohne Weiteres festmachen. Bei einem IPad 1 ist das so, da wird die Grafik aber ganz anders erzeugt als bei einer Grafikkarte im PC. 10.000 Drawcalls ist aber echt mal ein Wort! Das muss man erstmal schaffen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tiles Geschrieben 6. März 2013 Melden Share Geschrieben 6. März 2013 Jedes unabhängige Mesh bedeutet ein Drawcall. Jedes Material auch. Vier Hütten mit gleichem Material, aber unabhängig von einander? Vier Drawcalls. Einfach eigentlich Nun etwas komplizierter: wenn zum Beispiel ein Projector Shadow (Blobshadow) ein Mesh streift (oder besser gesagt dessen Boundingbox), dann wird das Objekt noch mal gezeichnet. Ein Mesh mit einem Material das von einem Projektorshadow gestreift wird: zwei Drawcalls. Ein Objekt, ein Material plus vier Projektorshadows: fünf Drawcalls. Und jedes Licht das da noch im Spiel ist verdoppelt die Drawcalls noch. 10.000 Drawcalls ist aber echt mal ein Wort! Das muss man erstmal schaffen. Och ... Tausend schafft man spielerisch. Dann noch zehn Pointlights dazu ... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ricky-W Geschrieben 6. März 2013 Autor Melden Share Geschrieben 6. März 2013 Danke, jetzt habe ich es verstanden (zumindest besteht die Hoffmung), höchstwahrscheinlich ist Blobshadow oder sowas standartmäßig eingestellt und darum habe ich 4 Draw Calls bei mein Modell. Früher oder später werde ich noch "DER HERR DER DRAW CALLS" Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mauri Geschrieben 6. März 2013 Melden Share Geschrieben 6. März 2013 Blobshadows können aber nicht standardmäßig eingeschaltet sein, weil du diesen erst zu deinem Modell hinzufügen musst. Ist halt kein Realtime Shadow. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tiles Geschrieben 6. März 2013 Melden Share Geschrieben 6. März 2013 Stimmt. Das war nur ein Beispiel dafür dass Drawcalls nicht nur mit dem Mesh und dem Material allein zu tun haben. Da spielen êben noch viele andere Faktoren mit rein. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mauri Geschrieben 6. März 2013 Melden Share Geschrieben 6. März 2013 War eher auf Ricky-W bezogen, weil er dachte Blobshadows wären standardmaßig eingeschaltet, was ja nicht sein kann. ^^ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
blumenzocker Geschrieben 6. März 2013 Melden Share Geschrieben 6. März 2013 Soweit mein Wissen reicht, sind Blobshadows ja Schatten die vorher berechnet/Erstellt wurde und dann in einem gewissen Winkel auf die Oberfläche gezeichnet werden. Das müste ja eigentlich viel perfomanter laufen als überall realtime zu haben, zb. in einem Wald. Man könte je nach Winkel der Sonne eine Zerrung in die Schattentextur einbauen so das Sonnenaufgängen und Untergänge simuliert werden können. Die Frage ist wie funktioniert das in Unity und wie setzt man das um? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 7. März 2013 Melden Share Geschrieben 7. März 2013 Gezerrt wird die Textur bei schrägem Einfall soweiso. Und das mit der Sonne klatt in der Tat wunderbar. Das kriegt die Sonne: private static var instance : Transform; function Awake() { instance = transform; } static function GetRotation() : Quaternion { return instance.rotation; } Und das alle BlobShadows: function LateUpdate() { transform.rotation = NameDesSonnenSkriptes.GetRotation(); } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
blumenzocker Geschrieben 7. März 2013 Melden Share Geschrieben 7. März 2013 Wie erstellt man nun aber diese "Blobshadows" für ein Objekt? Wie bindet man diese für ein Objekt ein? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mauri Geschrieben 7. März 2013 Melden Share Geschrieben 7. März 2013 Erstmal musst du die Blobshadows in dein Projekt importieren. Das geht über Assets > Import Package > Projectors. Dann wählst du dein Objekt aus und heftest via Drag & Drop den jeweiligen Blobshadow an. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.