3D Landschaft - Virtuelles entfernen von 3D-Objekten ...

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

JPD

Betreff: 3D Landschaft - Virtuelles entfernen von 3D-Objekten ...

BeitragSo, Mai 25, 2008 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich schreibe gerade an einem kleinen Spiel in dem man sich einfach mal durch eine Art Labyrinth kämpfen muss. Dabei gibts n paar Gegner und man muss ein paar Items einsammeln um Türen usw öffnen zu können - so wie wir es aus den guten alten Zeiten kennen. Ich bin nun auf ein Problem gestosen. Ich baue meine Landschaft aus einzelnen Elementen auf, was im Endeffekt dann an die 2000 Stück pro Level werden. Darunter leidet natürlich der Speed. Jetzt habe ich mir gedacht, dass man nichtbenötigte Objekte mit Hilfe von EntityInView testen kann, ob sich der gewünschte Gegenstand in Sicht befindet oder nicht. Je nach dem dann mit ShowEntity und HideEntity anzeigen oder verbergen - denkste. Wink

Also mal ganz dumm gefragt - wie kann ich nur die Elemente anzeigen lassen, die auch wirklich, sagen wir mal 15 Einheiten um den Spieler herum vorhanden sind. Die Gegner sollten dabei ihre "Intelligenz" behalten, also wie stark Sie beschädigt worden sind und ob eine Türe schon geöffnet wurde oder nicht. Vielleicht wisst ihr ja ein paar Tricks dazu.

Grüße Jan

Der_Schläfer

BeitragSo, Mai 25, 2008 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt sonst einen Befehl, Entityautofade, der Objekte ab einer bestimmten Entfernung zur Kamera ausblendet. Der sollte es meines Wissens eigentlich tun.

The_Nici

BeitragSo, Mai 25, 2008 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
EntityDistance zum ermitteln des Abstands zweier Objekte.

Dazu würde ich statische Modelle die nichts machen ausser toll aussehen mit AddMesh zusammenfügen.

Mr.Keks

BeitragSo, Mai 25, 2008 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
übrigens: das frustumculling, das du mit entityinview realisieren wolltest, macht blitz3d automatisch...
MrKeks.net

ToeB

BeitragSo, Mai 25, 2008 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
EntityInView benötigt einen EntityPick wert, de4r größer als null ist, bei den Objecten, dann kannst du es benutzen... Steh aber auch in der Hilfe unter EntityInView...

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Mr.Keks

BeitragSo, Mai 25, 2008 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
toeb: sehr souveränes halbwissen! du redest von entityvisible und das ist nun auch wieder was ganz anderes.
MrKeks.net

JPD

BeitragDi, Mai 27, 2008 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, das hat das ganze schonmal beschleunigt. Ich hab mal zum Testen ein Feld mit 100x100 Würfeln aufgebaut. Jedem Würfel habe ich ein EntityAutoFade von 5,10 gegeben. Dies war ein Extremtest, die Grafik ruckelt hier echt extrem, obwohl nur ca 20 Würfel angezeigt werden.

Woher kommt sowas? Ist das die Struktur von Blitz oder der Speicherverbauch mit den 10.000 Würfeln ?! Wink Währe die ganze Sache denn schneller, wenn man die Entity einfach kopieren würde?! In meinem Fall währe das echt einfach, da es sich nur um Mauerstücke und vorgefertigte Modelle handelt ... muss ich mal ausprobieren ... Wink
 

Matthias

BeitragDi, Mai 27, 2008 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay.

Wenn du wirklich ein Level mit so vielen Objekten haben willst, wirst du an Singelsurface nicht dran vorbei kommen.

Ich meine damit das alle deine Objekte zB die Mauern ein und die selbe Texture benutzen. Dann kannst du nämlich Entitys benutzen als Quadranten und deine Objekte mit AddMesh zu dem EntityQuadrant hinzufügen.

Es hört sich schwer an. Es ist auch schwer zu Programieren. Aber der unterschied ist extrem.

Gruß Matthias.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group