Speedtree Fragen

    • Offizieller Beitrag

    Wenn ich jetzt einige balkenförmige collider in erreichbare Äste schiebe, bräuchte ich ca 15-20. Wäre es da nicht effektiver ein Komplexes zu machen? Ich mein vllt trifft dieses drawcall auf jeden collider einzeln zu?

    Warum brauchen deine Blätter überhaupt ein Collider ?
    Würde es nicht reichen nur für den Stamm eine Box als Collider zu nehmen.


    EDIT.: Bei erreichbaren Äste könnte man ja auch einfach durchlaufen das ist doch angenehmer als immer in den Ästen hängenzubleiben.

  • Warum brauchen deine Blätter überhaupt ein Collider ?
    Würde es nicht reichen nur für den Stamm eine Box als Collider zu nehmen.

    Erstaunlich. Er schreibt von erreichbaren Ästen und du von Blättern.


    Naja, wie dem auch sei. Du musst halt überlegen wie genau du die Simulation, auch mit Ästen wo du gegen rennen kannst, haben möchtest. Ist es wirklich nötig, dass er an den Ästen stoppt, oder kann man nicht einfach mal annehmen, das er so durch die Äste geht weil er sich, rein Rollespieltechnisch, also vorgestellt, kurz duckt und den Ästen ausweicht.

    • Hilfreich

    Und musst du denn jeden einzelenen Ast abfragen? Würde da nicht vielleicht ein runder Collider auf Höhe der Äste reichen?


    Normalerweise versucht man in Spielen immer möglichst zu vereinfachen, Dinge zusammenzufassen.


    Aber um mal zu der Urfrage zurückzukommen. Wenn es einfache Collider sind, Was weiß ich, um jeden Ast so ein Viereck oder so, dann kannst du ruhig auch die 15 Stück nehmen. Was auch gehen würde, und ich kenne mich mit Speedtree jetzt nicht aus, aber in Blender könntest du das Baummodell auch kopieren, und diese Kopie denn als Collider speichern. Dann wäre er relativ komplex. Aber das macht nicht unbedingt etwas, weil du wirst wohl kaum mehrere 100 oder gar 1000 Bäume im Sichtbereich haben, weswegen sich die Anzahl der zu berechnenden Teile deiner Welt wiederum in Grenzen halten dürfte.

  • aber in Blender könntest du das Baummodell auch kopieren, und diese Kopie denn als Collider speichern

    Das wird nicht klappen, da nicht das ganze Mesh, genau so als Collider angezeigt wird, sondern am Ende einfach nur ein großer Runder Collider um das ganze Mesh liegt, da Zwischenräume verbunden werden:


    Selbst wenn du nur die unteren Äste als Collider direkt in Blender setzt, interpretiert es die UE4 anders als du willst:


    Am einfachsten wäre es, wenn du das Mesh umstellst, von Simple Collision zu Complex Collision:


    Was die Performance angeht, zieht Complex Collision ein bisschen mehr, aber nicht wirklich viel mehr, mein komplettes letztes Game bestand aus Complex Collision^^

    (Hatte es in den Project Settings irgendwann mal geändert und als ich es zurück setzen wollte, gabs nur noch Probleme, weshalb ich es so ließ)


    Kann man sich eigentlich anzeigen lassen, wie viele dreiecke man in ue4 gerade sieht?

    Kann man^^



  • Geloscht

    Ist mir neu.

    Ich zitiere mal aus dem Tutorial von Dj EKI :



    Wenn euer Objekt fertig ist, dann erstellt man ein neues Objekt. Den bearbeitet man so lange, bis die gewünschte Collision erreicht ist.

    Dieses Objekt muss den selben Namen haben, aber mit UCX_ anfangen.

    Die beiden Objekte müssen zusammen als FBX exportiert werden. OBJ funktioniert leider nicht.

    Importieren müsst ihr es mit der Option Combine Meshes. Ansonsten habt ihr 2 Actors im Verzeichnes. Auto Generate Collision kann aktiviert bleiben.


    Ich hatte das mal ausprobiert und es hat funktioniert.

  • Dieses Objekt muss den selben Namen haben, aber mit UCX_ anfangen

    Ja, so hab ich das auch gemacht, hier der Link zur UE4 Doku: https://docs.unrealengine.com/…shes/index.html#collision


    Jedoch hab ich einfach nur den ganzen Baum (bzw. das untere Teil) komplett als Colli gespeichert^^

    Wenn man das ganze in mehrere aufsplittet, bekommt man auch andere Ergebnisse, das einzige Problem ist, dass wenn etwas hohl ist, das Loch gerade überspannt wird.


    Keine Ahnung wie ich das jetzt erklären soll, mir fällt das scheiss Wort nicht ein, deshalb gibts ein Bild meines 3-jährigen Ichs:


    Steht auch in der offiziellen Doku^^

  • das einzige Problem ist, dass wenn etwas hohl ist, das Loch gerade überspannt wird.

    Ja, das stimmt allerdings. Ich habe mal in Blender eine extrem einfaches Modell erstellt. Eigentlich nur eine Wand und dann ein Loch für die Tür reingestanzt. Dann habe ich das Mesh kopiert und eben halt als Colli umbenannt. Im Spiel konnte ich tatsächlich nicht durch die Tür gehen, und auch Gegenstände, die ich durch das Loch schmeißen wollte, prallten ab. Ziemlich blöd bei Handgranaten, auch wenn es nur ein Test war. Ich dachte halt nur das ich etwas falsch gemacht hätte. Ich wäre nicht auf die Idee gekommen, dass das jetzt an den technischen Gegebenheiten liegt.

  • Eigentlich nur eine Wand und dann ein Loch für die Tür reingestanzt.

    Bei sowas wo es ziemlich genau sein muss, lohnt sich die "Complex Collision" ^^


    Wo anders kann man es auch mit ein paar Boxen lösen, was bei was rundem nicht so optimal wäre:

    Mit Complex-Collision sieht es in der Mitte viel besser aus^^


    Wobei es bei nem Shooter eigentlich überall super genau sein sollte, kenne es aus meinem Sniper-Spiel (Sniper Elite 3) ... komplett freie Sicht, aber die Colli passt nicht, also bin ich tot, weil der Gegner mich sieht und ich nicht durch die Colli des Felsen schießen kann (und das auch noch an nem Platz der extra dafür eingerichtet wurde um hin zu liegen)...

  • Ja, das stimmt allerdings. Ich habe mal in Blender eine extrem einfaches Modell erstellt. Eigentlich nur eine Wand und dann ein Loch für die Tür reingestanzt. Dann habe ich das Mesh kopiert und eben halt als Colli umbenannt. Im Spiel konnte ich tatsächlich nicht durch die Tür gehen, und auch Gegenstände, die ich durch das Loch schmeißen wollte, prallten ab. Ziemlich blöd bei Handgranaten, auch wenn es nur ein Test war. Ich dachte halt nur das ich etwas falsch gemacht hätte. Ich wäre nicht auf die Idee gekommen, dass das jetzt an den technischen Gegebenheiten liegt.

    Jedoch hab ich einfach nur den ganzen Baum (bzw. das untere Teil) komplett als Colli gespeichert^^

    Wenn man das ganze in mehrere aufsplittet, bekommt man auch andere Ergebnisse, das einzige Problem ist, dass wenn etwas hohl ist, das Loch gerade überspannt wird.

    Bei Objekten wie zB. einer Tür muss man den Collider, welchen man in einem 3D Programm erstellt aus mehrern Objekten machen. Dann werden auch keine Hohlräume überbrückt.
    So wie hier zB. bei einer Tür.


    Beim Export bzw in der UE4 wird es zu nur einem richtigen Collider zusammen gesetzt.

    In der Engine ist es dann auch die simple Collision.

  • Beim Export bzw in der UE4 wird es zu nur einem richtigen Collider zusammen gesetzt.

    In der Engine ist es dann auch die simple Collision.

    Sieht es nur aus wie ein einziger oder sind es in den Details doch mehrere?

    Normalerweise müsstest du in den Details 3 haben, genau wie in Blender, außer du benutzt ein Plugin/Engine-Settings, von dem ich noch nie gehört hab^^


    Hey ich habe vor so ca 30 Bäume/foliage in einer Szene unterzubringen ist das ok oder zu viel?

    Wie KevOneill sagte, kommts natürlich auf die Komplexität des Baums an, aber wenn ich locker ein paar Tausend Bäume mit je 10k Tris hin setzen kann, sollten 30 mit je 1mio Tris (wenn mans unbedingt braucht...) auch kein Problem sein^^


    Kommt aber auch drauf an, was da noch so in der Szene steht, weil gibt ja auch noch andere Pflanzen, Felsen, usw.


    Vergiss auch nicht die LODs, wenn die eine Szene allein im Level ist und nur gesehen werden kann, wenn man drin steht, mögen die 30 Bäume mit je 1mio Tris ok sein, jedoch nicht mehr, wenn man die Szenerie auch aus der Ferne sieht und dazwischen noch ein paar Tausend andere Assets hocken^^

  • Sieht es nur aus wie ein einziger oder sind es in den Details doch mehrere?

    Normalerweise müsstest du in den Details 3 haben, genau wie in Blender, außer du benutzt ein Plugin/Engine-Settings, von dem ich noch nie gehört hab^^

    falls ich es richtig verstanden habe:
    Ja also in der Collision-Ansicht werden da quasi 3 Rechtecke angezeigt. Also quasi wie bei dir und deiner Wand mit dem Loch :D

    • Offizieller Beitrag

    Gehts eigentlich generell um tris oder die Größe der Dreiecke? Ich mein wenn ein Model 50 millionen tris hat aber die Dreiecke so groß sind, dass immer nur 30 k gezeigt werden, Gibts dann größere Probs?

    Die Größe der Tris spiel keine Rolle. Es wird immer das gesamte Mesh mit allen Tris gezeichnet. (Egal ob du nur ein paar oder alle Tris sehen kannst)


    Bei Blätter hast du außerdem das Problem das du ja willst das beide Seiten gezeichnet werden (Backface Culling aus) Das wirkt sich ebenfalls auf die Performance aus.


    Im Prinzip geht es auch nicht um die Tris sondern um die Anzahl von Vertices die gesetzt werden müssen um das Mesh zu bilden.

    Keine Ahnung wie viele Vertices 50 Millionen Tris haben, aber alle Punkte müssen wenn du dich bewegst in Echtzeit bewegt werden. Das sind Millionen von Mathematischen Berechnungen die simultan ausgeführt werden müssen.


    Voxel basieren übrigens auf einer anderen Technik wo tatsächlich nur das berechnet werden muss, was gesehen wird. Deswegen läuft Minecraft auch so performant obwohl du im Worstcase Millionen von Quadern sehen kannst.

  • Keine Ahnung wie viele Vertices 50 Millionen Tris haben,

    Das ist abhängig von verschiedenen Faktoren.

    Ein simpler Würfel kann mit smooth shading 8 Vertics haben, oder aber 24 mit harten Kanten.
    (im Extremfall, wenn jedes Dreieck seine eigenen Vertexpunkte besitzt sogar 36 Vertics)

    Die 50 Millionen Tris können also maximal 150 Millionen Vertics haben, aber eben auch deutlich weniger.