• Hallo Leute,


    da ich mich mit Game Design noch relativ wenig beschäftigt habe, wollte ich einfach mal hier ein Thema bezüglich BSP Brushes aufmachen. Um genau zu sein: Was spricht gegen die Verwendung von BSP-Brushes?


    Mir ist klar, dass StaticMeshes Ressourcen spart, weil man über einem static mesh, egal wieviele details man hat, einfach eine quadratische CollisionBox ziehen kann. Auch ist mir bewusst, dass man BSP-Brushes verwenden kann, um grob ein Levellayout zu erstellen, um diese später wieder zu entfernen.


    Aber nehmen wir nur mal an, man baut ein Level, der ausschließlich aus viereckigen BSP-Brushes besteht. Also keine Details hat. Frisst das denn auch an der Performance? Und wenn ja wieso? Es ist ja schließlich ein Primitiver Körper (eine Box). Ist es egal, ob ich ein viereckiges Static mesh (mit einer Box collision), oder ein viereckiges BSP-Brush verwende?


    Liebe Grüße euch :)

    • Offizieller Beitrag

    Aber nehmen wir nur mal an, man baut ein Level, der ausschließlich aus viereckigen BSP-Brushes besteht. Also keine Details hat. Frisst das denn auch an der Performance? Und wenn ja wieso? Es ist ja schließlich ein Primitiver Körper (eine Box). Ist es egal, ob ich ein viereckiges Static mesh (mit einer Box collision), oder ein viereckiges BSP-Brush verwende?

    ich denke in diesem Fall sind die BSPs genau so performant wie ein Quader Polygon Modell aus einem 3D Programm.

    Ebenso kannst du ein BSP auch in ein Staticmesh umwandeln. Nur was ist das Problem ?


    1.Du kannst bei den BSPs ja einen Subtract anwenden was in einem 3D Programm einer Booleschen Operation entspricht. Das neu Triangulieren des Meshes wird so durch den Bool Algorithmus durchgeführt, dabei werden Ngons beseitigt.

    Dieser Algorithmus arbeitet aber eher willkürlich und eben nicht so gut als wenn du NGons manuell beseitigen würdest.

    Die Staticmeshes können deswegen eine ziemliche Katastrophe in ihrer Topologie sein, Bei einfachen Quader gibts dieses Problem aber nicht.


    2.Das selbe gilt für den Optimierung des UV Raums auch hier bist du mit einer Manuellen Anordnung besser bedient.



    Ich möchte die Frage einmal umdrehen. Warum willst du BSP benutzen.

    Ich finde BSPs zu nutzen ist als wenn man versucht mit verbunden Augen und die Hänge nach hinten gebunden irgend was zu bauen.


    Im 3D Programm arbeite ich mit maßen. Geländer 1,20 Hoch, Wand 30 cm Dick und 3,50 Hoch und exakt 2,5 Breit.

    Ich kann mit einem 3D Modell viel viel präziser arbeiten ich finde alleine schon aus Proportionsgründen sollten 3D Meshes in einem 3D Programm entstehen. Ich sehe keinen Grund außer um mal fix was zu testen, warum man BSPs verwenden sollte.

    Finde die Dinger schrecklich.

    Ich weiß aber auch, dass gerade Anfänge gerne ein Fan von diesen booleschen operation sind. Wer aber mehr Erfahrung hat, weiß das es auch ohne geht.

    Ich habe heute das erste mal in diesem Jahr eine Boolische Operationen gebraucht weil es nicht anderst ging.

  • Hey Sleepy, danke für deine ausführliche Antwort, Wissen und Meinung zu diesem Thema.


    ich denke in diesem Fall sind die BSPs genau so performant wie ein Quader Polygon Modell aus einem 3D Programm.

    Danke, das ist genau das was ich lesen wollte :)



    Die Vorteile die du genannt hast, sind genau die Dinge die für mich für BSPs sprechen. Man kann einfach schnell mal ein Level bauen. Ach, ich möchte hier und da doch spontan ein Türloch/Fensterloch haben? Kein Problem! Einfach rein setzen und fertig. Natürlich nur, wenn es bei Boxen bleibt! Ich würde niemals versuchen etwas aufwendiges anhand von BSPs zu modellieren.


    Ich möchte die Frage einmal umdrehen. Warum willst du BSP benutzen.

    Ich finde BSPs zu nutzen ist als wenn man versucht mit verbunden Augen und die Hänge nach hinten gebunden irgend was zu bauen.

    Ich denke diese Frage kann ich dir beantworten: Stell dir vor, du möchtest Levels erstellen für ein Spiel, dass keine hohen Anforderungen im Design erfordern sollen. Einfach nackte Räume, fertig. Okay.. Vielleicht noch texturen an den Oberflächen und ein paar Gegenstände platzieren (die natürlich als static mesh aus einem professionellen 3D-Modellierungsprogramm kommen). Aber an den Wänden, Böden und Decken soll kein Schnickschnack ran. Einfach nur Wand, Boden, Löcher (Für Türen, Fenster). Und mit den 2D-Ansichten im Editor kann man super schnell Wände länger/kürzer ziehen (nicht skalieren), spontan etwas umändern und die texturen werden nicht verzerrt. Das finde ich super angenehm und einfach.


    Meine Sorge war/ist dass selbst bei diesen einfachen Geometrien Performanceverluste zu befürchten sind

    • Offizieller Beitrag

    Ich denke diese Frage kann ich dir beantworten: Stell dir vor, du möchtest Levels erstellen für ein Spiel, dass keine hohen Anforderungen im Design erfordern sollen. Einfach nackte Räume, fertig. Okay.. Vielleicht noch texturen an den Oberflächen und ein paar Gegenstände platzieren (die natürlich als static mesh aus einem professionellen 3D-Modellierungsprogramm kommen). Aber an den Wänden, Böden und Decken soll kein Schnickschnack ran. Einfach nur Wand, Boden, Löcher (Für Türen, Fenster). Und mit den 2D-Ansichten im Editor kann man super schnell Wände länger/kürzer ziehen (nicht skalieren), spontan etwas umändern und die texturen werden nicht verzerrt. Das finde ich super angenehm und einfach.

    ALs ich mit 3D angefangen habe, hatte damals einzelne Assets gebaut. zb ein Stuhl dann ein TIsch usw


    Irgend habe angefangen alles in deiner Szene zu bauen. So wird der Tisch an den Charakter angepasst, der Stuhl wird so angepasst dass er unter den Tisch passt und auch zwei Stühle nebeneinander am Tisch platz haben. Man kann nicht eine Tür Modellieren ohne zu wissen ob der Charakter später überhaupt durchpasst.

    Ich hab einfach gerne die Kontrolle über meine Meshes und daraum möchte ich die Kontrolle im 3D Programm haben.


    Meine Sorge war/ist dass selbst bei diesen einfachen Geometrien Performanceverluste zu befürchten sind

    Ich denke ab dem Zeitpunkt wo du etwas anderes wie Cubes verwendet, sind die Ergebnisse nicht mit Optimal. Aber wenn du BSPs mit Substract verwendest, rasselt die Performance mit Sicherheit nicht in den Keller. Wenn durch BSPs etwas performance verloren geht: Shit happens

  • Also ich nutze mittlerweile auch BSPs. Jetzt eigtl sehr viel Sinn da du erstmal wie du gesagt hast, um das leveldesign zu testen. Wo soll jetzt genau die Tür hin. Oder Fenster und ähnliches. Oder wo soll überhaupt ein Gebäude hin. Dann kann ich auch testen ob das gameplay auch reinpasst. Zb. Ob sich Spieler langweilen würden weil sie zu lange umherlaufen müsste. Macht ein Kampf oder ähnliches Sinn, genau an dieser Stelle stattfinden zu lassen. Wenn ich dann mit dem gameplay zufrieden bin fange ich an das alles auszutauschen und beginne auch mit dem richtigen Design. Währenddessen kann sich das Level natürlich immer noch ändern. Im fertigen Spiel würde ich aber eher nicht die BSPs drin lassen.

    • Offizieller Beitrag

    Ich weiß das dass viele machen mit dem Blockout. Nur sollte das Blockout nicht die Ausrede sein um sich vor dem Modellieren zu drücken 8o



    Wo soll jetzt genau die Tür hin. Oder Fenster und ähnliches. Oder wo soll überhaupt ein Gebäude hin. Dann kann ich auch testen ob das gameplay auch reinpasst.

    Dass kannst du doch genau so gut in einem 3D Programm.


    Es spricht absolut nichts dagegen nur mein Weg ist er nicht.