Ersatz für CameraPick oder LinePick

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

StepTiger

Betreff: Ersatz für CameraPick oder LinePick

BeitragDi, Jun 20, 2006 7:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es einen Ersatz für CameraPick oder LinePick der um weiten schneller läuft?
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Dreamora

BeitragDi, Jun 20, 2006 8:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun das kommt draufan wie du es machst. Wenn du die Pick Methode nicht auf Polygon setzt ist es zb schon beträchtlich schneller.
Etwas was auch sehr wichtig ist, ist das du nicht keine allzugrossen Pickdistanzen wählst, da es sonst viel zu lange dauert. (gibt viele die meinen, das Cam Pick umbedingt zig tausend einheiten tief rein müsse oder die kamera 10000 - 20000 view range brauche, was kompletter blödsinn ist)

Hatte bisher nie Probleme, das Picking zu langsam gewesen wäre.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Markus2

BeitragDi, Jun 20, 2006 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Optimal wäre es wenn du nur Objekten nen Pickmode gibst die
du wirklich testen willst bzw. in Frage kommen etc.
z.B. erst mit Box oder Sphere testen und dann evtl. auf Polygon umschalten .

Und wie Dreamora sagt durch die länge die du angibst
können sehr viele Schnitttests anfallen wenn dein Terrain z.B.
den Pickmode an hat .

Für weite Strecken habe ich die länge hoch gezählt wenn nix
gepickt wurde (bei LinePick)
 

sonicfire

Betreff: Re: Ersatz für CameraPick oder LinePick

BeitragDi, Jun 20, 2006 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
Gibt es einen Ersatz für CameraPick oder LinePick der um weiten schneller läuft?


Was machst du denn, das es so auf Geschwindigkeit ankommt?
~sonic

StepTiger

BeitragDi, Jun 20, 2006 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ein schatten system! Danke schonmal

noch was möglich
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

StepTiger

BeitragDi, Jun 20, 2006 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
SUPER! MIT EUREN TIPS HAB ICH ES VON 11 SCHON AUF 20 fps geschafft.


noch ideen?
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

trooper

BeitragMi, Jun 21, 2006 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
schon mal daran gedacht, dass auch sonst noch ein anderer codeteil bremsen kann?
was für objekte sollen, denn gepickt werden? eventuell kannst du ja ab einer gewissen distanz nur noch auf das bounding volumen testen.
-- imtane.de.vu --
a cherring ping

StepTiger

BeitragMi, Jun 21, 2006 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Also was ich gerade habe, läuft ohne meine schatten (mit camerapick) auf locker 80-90 fps
mit auf gerade 15-20 fps

ich denke, es liegt an den schatten Razz
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Vertex

BeitragMi, Jun 21, 2006 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Folgende Idee dazu wenn es ums reine Picking geht:
Alle Entities, die gepickt werden können renderst du von der Kamera folgendermaßen:
Kein Shading, keine Texturen, kein Alphablending. Du erstellst eine Tabelle(sprich Array) mit den Handles der Entities und einer zugehörigen EINMALIGEN Farbe sowie färbst auch das Entity in dieser Farbe.
Jetzt renderst du die Szene, liest mit ReadPixel an MouseX/Y entsprechend die Farbe ab, die gepickt wurde, und guckst nun in die Tabelle, welches Entity das war.
Ich vermute nämlich, das Mark intern bei CameraPick eine Ray - Polygon/Sphere/Box Kollision durchführt, was denke ich, rechenaufwendiger ist. Bei LinePick muss diese Prüfung aber rechnerisch erfolgen.
mfg olli

StepTiger

BeitragDo, Jun 22, 2006 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
sehr sehr gute idee! Hab nu aber ein problem! Also:
Ich mache ein kleines Objekt um das Licht! Es hat eine ganz besondere Farbe. Wenn es "gesehen" wird dann sollte es eigentlich hell sein, wenn nicht dunkel

aber irgendwie ist es bis auf einen punkt immer dunkel!

ich geb euch mal den schatten-teil des codes:
Code: [AUSKLAPPEN]
Function shadow(tlight,shadowcam,shadowx#,shadowscale#)
   CameraProjMode shadowcam,1
   LockBuffer BackBuffer()
   For x=1 To shadowx#
      For y=1 To shadowx#
         LockBuffer TextureBuffer(shadowtex)
         PositionEntity shadowcam,x*shadowscale#-128,1,y*shadowscale#-128
         PointEntity shadowcam,tlight
         If EntityDistance(shadowcam,tlight)<shadowmax#
            argb=ReadPixelFast(400,300)
            rrgb=argb Shr 16 And 255 Shl 0
            grgb=argb Shr 8 And 255 Shl 0
            brgb=argb Shr 0 And 255 Shl 0
            If Not (brgb=254)
;            If CameraPick(shadowcam,400,300)<>tlight
               oldcol=ReadPixelFast(x,y,TextureBuffer(shadowtex))
               oldr=oldcol Shr 16 And 255 Shl 0
               oldg=oldcol Shr 8 And 255 Shl 0
               oldb=oldcol Shr 0 And 255 Shl 0
               nr=oldr*.1
               ng=oldg*.1
               nb=oldb*.1
               argb=(nb Or (ng Shl 8) Or (nr Shl 16) Or ($FF000000))
               WritePixelFast x,shadowx#-y,argb,TextureBuffer(shadowtex)
            EndIf
         EndIf
         UnlockBuffer TextureBuffer(shadowtex)
      Next
   Next
   UnlockBuffer BackBuffer()
   CameraProjMode shadowcam,0
End Function
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group