Verständnisfrage zu Mesh-Objekten?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

JPD

Betreff: Verständnisfrage zu Mesh-Objekten?

BeitragDo, Feb 24, 2011 1:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

wie schafft man es in Blitz3D nur Teile einer Welt darzustellen. Beispiel: Ihr habt einen Irrgarten oder ein Labyrinth mit mehreren 1000 Wänden. Nun müsst ihr praktisch ja nur das rendern bzw. berechnen, was auch in Spielernähe ist.

Das Problem an der ganzen Sache ist, ich kapiere nicht, wie das mit B3D gehen soll. Ich lade doch am Anfang meine Objekte, platziere diese und gut ist. Wenn ich diese während des Spiele dauernd lösche und neu erstelle frisst dies doch enorm viel Performance?

Arrow BSP-Trees? Gibts dafür heute noch einen Sinn, oder nur bei Raycastern?

Nunja, wie kann man z.B. verborgene Räume einfach ausblenden und wieder einblenden um so eine gute Leistung zu erzielen? Verborgene Gegenstände werden bei mir konstant mitgerendert, da sich dauerhaft eine konstante Anzahl an Triangles im Speicher befindet.

Ich hoffe ihr versteht mein Problem Wink

Arrow HideEntity? Warum soll ich diese zu Beginn erstellen, verstecken und dann kopieren?? Das macht für mich keinen Sinn - laut der B3D-Hilfe soll man es so machen Question

Grüße Jan Wink

Xeres

Moderator

BeitragDo, Feb 24, 2011 1:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Laden & Löschen dauert, das ist richtig; darum Laden, mit HideEntity verstecken und z.B. bei geringem Abstand wieder anzeigen ShowEntity. Mit kopieren hat das eigentlich nichts zu tun.
Wenn du ein Objekt mehrfach verwenden willst (ich nehme mal nicht an, du verwendest 1000 verschiedene Wände), hilft CopyEntity (wobei nicht die Mesh-Daten dupliziert werden!).
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Jumper

BeitragDo, Feb 24, 2011 5:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso soll das keinen Sinn machen?
Zugegeben, ich habe von 3D keinen blassen Schimmer, denn das ist nicht meine Welt. Aber vom Verständnis her würde ich das so interpretieren. Daher korrigiert mich wenn ich falsch liege.

Wenn Du ein Object mehrfach verwendest, dann ist CopyEntity schneller und Speicherplatzschonender als immer wieder das gleiche Object zu laden. Aber das hat ansich nicht unmittelbar was mit Deiner Frage zu tun, sondern war ein zusätzlicher Tipp von Xeres.

Wenn Du zunächst alle Wände mit HideEntity unsichtbar machst, werden diese nicht gerendert und nicht auf Kollisionen geprüft, was sicher einen Geschwindigkeitsschub bringen dürfte.
Erst wenn die Wände sichtbar werden sollen, benutzt Du ShowEntity.

Das dürfte genau das sein, wonach Du gesucht hattest.

JPD

BeitragDo, Feb 24, 2011 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Na das hilft ja schonmal sehr gut weiter. Denke ich werde einzelne Bereiche in Gruppen einteilen und dementsprechend anzeigen oder nicht, ähnlich wie Räume in einem Haus. Ist die Frage, wie man das sinnvoll hinbekommt ohne die CPU in den Keller zu ziehen.

Dann muss ich mich doch noch in die Algorithmik von BSP-Trees oder Ähnlichem einlesen ... Wink

Danke schonmal für eure Hilfe, melde mich wieder Cool

Grüße Jan

aMul

Sieger des Minimalist Compo 01/13

BeitragDo, Feb 24, 2011 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Um mehrere Meshes gleichzeitig auszublenden kannst du sie alle an einen Pivot binden(EntityParent ) und dann einfach HideEntity auf diesen anwenden.

Falls das deine indirekte Frage im ersten Absatz nicht beantwortet, musst du genauer fragen, auf wen anders warten, oder selbst eine Lösung finden. Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Dottakopf

BeitragDo, März 10, 2011 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Abend Blitzer!

ganz banal.. aber dinge die nicht gesehen werden(also auserhalb der "Cameraauflösung" sind) werden eh nicht gerendert. Den rest kann man mit cameraRage und Fogmode ganz gut lösen. Wenn man jetzt noch geschickt versteckte/oder verdeckte versteckt sollten da kaum Probleme auftreten.

Und Blitz hat ja auch die LOD Funktion.. was bei großen Terrains wohl ein mächtiger Befehl ist.
Und wie es mein vorposter schon sagte, setze für Bereiche einen Pivot. Soll der Bereich mit all seinen childs versteckt werden musst du nur den pivot verstecken und alles ist cool.

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group