Objekte nicht sichtbar - wie viel Leistung?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

onkelz89

Betreff: Objekte nicht sichtbar - wie viel Leistung?

BeitragDi, Jul 24, 2007 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich weiß den Befehl nicht (glaube Entityfade war´s) aber das ist unwichtig, hab nur kein Blitz vor mir Wink

Da kann man einstellen, dass wenn Objekte so und soweit entfernt sind langsam den Alphawert (bis nachher auf 0) runterschrauben.
Wenn diese nichtmehr sichtbar sind... Brauchen sie dann viel weniger Leistung?
Was ist wenn man das mit mehreren (3.000 - 10.000) macht?
Kann es momentan nicht testen leider...

Danke im Vorraus
 

Dreamora

BeitragDi, Jul 24, 2007 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
es gibt entityfade, das macht genau das

und wenn eine entity hidden ist (hideentity <-> showentity) dann zieht sie prinzipiell garkeine leistung mehr.

Mit alpha 0 zieht sie noch leistung, weil kollision etc noch aktiv sind.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

peacemaker

BeitragDi, Jul 24, 2007 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber mit Alpha 0 zieht wird sie nicht mehr gerendert und das spart ja immernoch Rechenpower.

MfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

Dreamora

BeitragDi, Jul 24, 2007 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Das stimmt leider nur bedingt. Denn auch mit Alpha 0 wird sie immer noch an die Grafikkarte gesandt, das heisst sie zählt zb noch als Surface etc.

Sie spart natürlich an Renderzeit, da hast du recht.
Aber alles andere was mit entities zu tun hat, das nicht auf sRendering bezogen ist, wird weiterhin mit voller Leistung laufen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

onkelz89

BeitragDi, Jul 24, 2007 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das ist dass Problem... Kollision usw. müssen auch noch laufen leider.
Wobei... nicht für alle Objekte...
gibt es eine möglichkeit Hide Entity so zu benutzen, dass es funktioniert wie Entityfade nur am ende wird´s "versteckt"?

Und wenn es wieder näher zum Spieler kommt - soll es wieder auftauchen...
 

Dreamora

BeitragDi, Jul 24, 2007 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Das musst du selbst programmieren.

EntityFade funktioniert automatisch mit dem Abstand zu den Cameras, jedoch wirds am Ende halt nicht gehidded, sprich kollisionen etc laufen weiter.


wenn du soviele Daten hast, dass du allerdings solche feature brauchst, solltest du dir überlegen, ob nicht sehr viel optimierungspotentiell in der off view simulation verbraten wird: was du nicht siehst und auch über längere zeit nicht zu sehen bekommst, muss nicht zwingend mit voller genauigkeit weiter laufen. das kann man auch nur 1x pro sekunde aktualisieren zb (oder komplett pausieren je nach spiel)

das spart nicht unerheblich viel leistung
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Omenaton_2

BeitragMi, Jul 25, 2007 10:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau über diese Sache habe ich letzlich kurz nachgedacht.
Im Moment habe ich nur FadeEntity drin, aber ich plane es bald einfach so zu machen, daß sobald ein Entity an die total-ausblend-Grenze des Fadings kommt, also Distanz zwischen Kamera und Entity > als X ist, dann hide ich dieses Entity.
Wahrscheinlich gehe ich alle Objekte durch, und wenn sie über der Greneze sind hide, wenn darunter show.
Objekte, die sehr weit weg sind, sagen wie dopellt so weit weg wie ausfading Distanz, werden einfach gelöscht. Kommt man mit der Kamera wieder näher, dann werden sie neu spawnen.
 

onkelz89

BeitragMi, Jul 25, 2007 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht bei mir leider nicht. Ich kann die Objekte nicht löschen, da alle (ist echt nicht übertrieben) mehr oder weniger wichtig sind. Naja löschen ist nur bei Levelwechsel...
 

Dreamora

BeitragMi, Jul 25, 2007 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt auch keinen Grund dazu.

HideObject und im dazugehörigen Type zb das "enabled" Field auf false setzen und nimmer simulieren wenns weiter als 2x fadeOut distanz ist zb.

wenn das alles net geht, dann ist entweder etwas falsch in deinem code oder du versuchst etwas mit Blitz3D das nur mit einer speziell darauf ausgelegten engine möglich ist (riesige Streamingwelt a la Oblivion, WoW, GTA und so) bzw. in Blitz sehr sehr viel Können und Planung voraussetzt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

onkelz89

BeitragMi, Jul 25, 2007 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ehm was meinst du mit Field enable... kann man die einzeln ausschalten? und wie ist das dann in der Schleife (Typename is jetz abc)

For abc.abc = Each abc
...
Next

Die die nicht enable sind.. was ist dann mit denen? Werden die einfach ignoriert und wieviel Perfomance spart man damit?

... Ich plane schon etwas größeres, naja irgendwann wird auch ne Demo hier erscheinen, aber frag bitte noch nicht wann Wink dauert noch

the FR3AK

BeitragMi, Jul 25, 2007 20:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaub er meint das so:


Code: [AUSKLAPPEN]


For l.abc=each abc

if entitydistance(cam,l\abc)<1000 then
 enabled=1
else
 enabled=0
end if


if enabled=1 then
hier die funktionen usw.....
end if

next
 

Lador

BeitragMi, Jul 25, 2007 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
onkelz89 hat Folgendes geschrieben:
Die die nicht enable sind.. was ist dann mit denen? Werden die einfach ignoriert und wieviel Perfomance spart man damit?


Er sucht ja genau das, was du als "hier die funktionen usw....." bezeichnest.

MFG Lador
 

Dreamora

BeitragDo, Jul 26, 2007 9:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist offensichtlich was da rein kommt. Halt die eigenen Berechnungen wie Physik und was man sonst so damit macht, was nicht rendern ist.
Halt die Simulation.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

onkelz89

BeitragDo, Jul 26, 2007 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso Very Happy
nee ich dachte es gäbe einen Befehl und manche Types-Felder auszuschalten um somit Zeit zu sparen...

Type Mensch
Field Name
Field Alter
...

Wenn man nur nach bestimmten Namen sucht könnte man das Feld Alter deaktivieren damit um Ladezeit zu sparen.. (dachte sowas in der Art)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group