Speed-Gewinn durch HideEntity..?
Übersicht

![]() |
x-pressiveBetreff: Speed-Gewinn durch HideEntity..? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe gerade einen Artikel bei Blitzcoder gelesen, in dem jemand schreibt, eine gute Methode, um Speed zu gewinnen, ist, VOR RenderWorld alle Objekte, die nicht 'InView' sind, mittels HideEntity auszublenden.
Ist das wirklich nötig? ![]() Wo also soll hier der Nutzen liegen? |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das zusätzliche Hiden bringt nochmals viel Speed. Klar, BB rendert die Objekte auch nicht wenn sie nicht im Sichtberreich sind, aber es bezieht sie trotzdem in alle möglichen anderen Berechnungen mit ein. z.B. Kollisionen etc. Wenn du sie hidest entfallen diese Berechnungen. | ||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
eine frage: woher soll BB wissen ob es im sichtbereich liegt???
Dazu müssen erstmal alle polygone des objekts ausgerechnet werden ob da was zu sehen ist oder nicht - das kostet etwas speed - mit hideentity wird dieser vorgang übersprungen... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso rendert Blitz dann ein Mesh nicht, wenn es nicht sichtbar ist?
Beispiel: Code: [AUSKLAPPEN] Graphics3D 640,480,32,2 SetBuffer BackBuffer() Global camPitch# Global camYaw# Global Mesh = CreateSphere(32) Global Light = CreateLight(2) PositionEntity Light,0,15,0 PointEntity Light,Mesh Global Cam = createCamera() CameraZoom Cam,1.5 PositionEntity Cam,0,5,-5 PointEntity Cam,Mesh Hidepointer ;MAIN LOOP ----------------------------------- While Not KeyHit(1) Local xs# = MouseXSpeed() * 0.25 Local ys# = MouseYSpeed() * 0.25 MoveMouse 640/2,480/2 camPitch = camPitch + ys camYaw = camYaw - xs If camPitch < -85 Then camPitch = -85 If camPitch > 85 Then camPitch = 85 RotateEntity Cam,camPitch,camYaw,0 UpdateWorld RenderWorld Text 10,10,"TRIS RENDERED: " + TrisRendered() Flip Wend End Die Kamera mit der Maus soweit drehen, bis das Objekt aus dem Bild ist... |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lexikon sagt:
http://www.blitzbase.de/lexikon/3dpipeline.htm |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi......
grundsätzlich must du davon ausgehen ,das BB die Daten nur für DirectX vorbereitet und in eine dafür gebräuchliche Vorm bringt. BB selber Rendert nicht. Daher kann es imens wichtig sein, ewentuell for RenderWorld noch mal selber alle objecte auf sichtbarkeit zu prüfen, und gegebenenfals auszuschalten. Denn es macht für Dirext X schon einen unterschied ob 1000 Objecte Berechnet, davon fileicht nur 100 angezeigt werden. Wovon 800 garnicht oder niemals gesehen werden könten. Triesrendered gibt dabei immer nur die anzahl wirklich gerenderter Dreiecke wieder. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay, jetzt hab' ich den Durchblick. Die Frage ist nur, wie Zeitaufwendig der Sichtbarkeitstest mit EntityInView ist -wenn der z.B. recht aufwendig ist, lohnt es sich wohl nur, wenn man weiß, das wirklich viele Objekte existieren. Was sagt die Erfahrung? Kann man diese Methode getrost anwenden oder muß man hier immer wieder abwägen? | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
@tft - tauschst du absichtlich F und V in deinen posts?
mach einfach ATAN2-Winkelberechnung relativ zur Kamera - und wenn es +-45° außerhalb des winkels liegt, dann kannst du es verstecken, sonst anzeigen... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Vincent |
![]() Antworten mit Zitat ![]() |
---|---|---|
eine ATAN2 berechnung dauert ewig ... da würd ich lieber die von BB vorgefertigten befehle nehmen, um zu schauen, ob sich etwas im sichtbereich befindet. | ||
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt ! |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ATAN2 ist schnell
er reicht doch nur mittelpunkt von objekt auf einer ebene (x+z) zu beachten und nicht jeden vertex - etwas einfacheres+schnelleres gibt es nicht wenn du natürlich irg. wahnsinnige kameraschwenks macht, dann wird das wohl eher nix damit - kommt auf das spiel an... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du ein Beispiel parat (Einzeiler)? Habe schon seit einiger Zeit nicht mehr mit ATAN & Co. herumhantiert... ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group