Objekt in Sicht?
Übersicht

![]() |
StepTigerBetreff: Objekt in Sicht? |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, mal wieder ne Frage:
Wie kann ich prüfen, ob ein Objekt in Kamerasicht ist? An sich ja EntityInView aber wie kann ich prüfen, ob das Objekt verdeckt wird? |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Suco-X |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.blitzbase.de/befehl...isible.htm
Sollte auch mit einer Camera funktionieren. Bin mir aber nicht sicher. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
nimmt das auch rücksicht auf verdeckungen?
genau das ist ja das problem wenn die kamera nur einen Teil des objektes sehen sollte, dann soll es sozusagen als sichtbar gelten |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Objekte, die verdecken können werden mit ql:ENTITYPICKMODE bestimmt. | ||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
weiß ich doch!
Am besten ich sag mal genau worum es geht: Ich will schaun, ob die Kamera auch nur einen Teil des Objektes sieht. Also selbst wenn die Kamera nur ein Bein sieht dann ist es SICHTBAR Wenn die Kamera also nichts sieht (entweder durch Verdeckung oder außerhalb der Perspektive) dann ist es nicht SICHTBAR |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das geht auf Polygonebene und so nicht, wie du ja am InView Befehl von Blitz schon gemerkt hast.
Es gibt allerdings einen Trick: Erzeuge kopien deiner Objekte und färbe den level zb weiss und das objekt das dich interessiert rot. nun kannst du für den "inview" einfach mit diesen objekten rendern und schauen ob ein roter pixel existiert. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
ist das nicht etwas langsam? | ||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
MatthiasBetreff: ReadPixelFast |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Um das ganze etwas schneller zu machen kanst du.
1. Tipp: Du kannst doch auch jeden 4 BildPunkt mit Readpixelfast Auslesen das geht voll Schnell. 2.Tipp:Oder-Und Die Abtastung nur Jede 200 Millisekunden. Gruß Matthias |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: 1. Tipp: Du kannst doch auch jeden 4 BildPunkt mit Readpixelfast Auslesen
... oder gar von vornherein den cameraviewport ordentlich klein stellen das geht voll Schnell. ![]() |
||
MrKeks.net |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Natürlich ist es langsam.
Warum meinst du macht man in der Realität keine solchen Spielereien bei freier Geometrie? Wie gesagt, nur BSP und andere kompilierte PVS - Portal Levelsysteme erlauben solche Tests auf sinnvolle Art und Weise ... bei einem polygonbasierten Levelformat ist es nicht wirklich testbar auf Polygonbasis, da macht man das normalerweise mit der boundingbox oder dem boundingellipsoid, das ist mehr als ausreichend genau ... (oder man machts garnicht erst und nutzt einen octTree Scene graph |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
sag mir ne bessere variante, wie ich schauen kann, ob mein gegner mich sieht und gut so | ||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Linepick. | ||
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 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
linepick sagt mir nur, ob in direkter position jemand/etwas dazwischen ist.
Das will ich nicht wissen. Wie man das in der Mitte prüft weiß ich ja. Da kann ich auch Camerapick machen. Ich will nur wissen, wie ich schauen kann, ob nur irgendein Teil der Person zu sehen ist. Und für jeden Vertex LinePick kann ich gleich vergessen |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann nimm einfach ein paar charakeristische punkte wie mitte der hände u. füsse, sowie die stirn u. mitt des torso deiner person.
6 linepicks sollten noch zu schaffen sein, und ergibt eine ausreichende genauigkeit. |
||
Denken hilft! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
6 linepicks bei polygonen, bei je 20 Gegnern?
Also sind das pro durchlauf schon 120 Linepicks |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es sagt ja niemand das du immer alles testen musst.
darüber hinaus ist eigentlich nicht das Linepick das Problem sondern das "wie weit in die Tiefe", welches sich mit einem SceneGraphen doch stark optimieren lässt (wenn du einfach nur objekte positionierst in einem Editor und meinst damit wärs überhaupt irgendwie möglich das ganze zu lösen, so muss ich dich enttäuschen. Für solche Dinge muss der Mögliche Suchraum stark eingeschränkt werden können damits keine Probleme gibt. Sprich du aktivierst das Picking nur auf den Objekten von denen du weisst dass sie potentiell überhaupt im weg sein könnten. Bei den restlichen aktivierst du es garnicht. nach dem test am besten auch gleich überall wo es nicht gebraucht wird wieder deaktivieren. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
es wird bei der ganzen "welt" gebraucht. Die ganzen Räume brauchen es.
Eine Welt modelliert in cartography shop. Genau das ist ja das Problem |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den Fall gibt es nicht, das in der ganzen Welt gebraucht wird, ausser die Figur von welcher dich das Interessiert ist so gross wie die ganze Welt!
In jedem anderen Fall gibt es einen klar definierten Bereich in welchem überhaupt ein Pick entstehen kann nämlich der Bereich erzeugt durch die 8 verbindungen von Kamera zu den 8 Ecken des Bounding Volumes deiner Entity. Ausserhalbs kanns dir egal sein, wenns dort ein Pick gäbe, da es definitiv nicht zur Sichtbarkeit deiner Figur beiträgt. Aber wie gesagt, ohne einen SceneGraph kannste das ganze vergessen, das geht nicht. Wenn du dir selbst einen OctTree schreibst (ist eine weit verbreitete Datenstruktur, wirst also im Netz viele Erklärungen dazu finden können), dann kannst du das ganze auch mit deiner CS Map nutzen. Ich würde dir dazu folgendes empfehlen, was zwar auf den ersten Blick aufwändig aussieht, aber im Endeffekt garnicht so tragisch ist: 1. OctTree SceneGraph initialisieren mit der gewünschten Tiefe (je nachdem wie klein deine Spielfigur sein wird. Musst halt dann mit verschiedenen Tiefen versuchen um zu sehen was die beste Performance liefert) 2. Den Level laden 3. Alle Vertices - Triangles des Levels in Listen speichern und zwar für jede Textur eine Liste (damit du surface optimierungen machen kannst) 4. Nun die verschieden "Blätter" des OctTrees mit den Daten befüllen. (Jedes Blatt stellt ja ein Mesh dar) und zwar jeweils alle Vertices und Triangles die in diesem Bereich liegen landen auf diesem Mesh, für jede Textur eine Surface. 5. Wenn du nun schauen willst, ob etwas sichtbar ist, dann erfragst du erst einmal, welche Bereiche im OctTree dafür in frage kommen und aktivierst das Picking nur auf diesen. Dabei kommt dir sehr zu gute, dass OctTree ja eine Baumhierarchie hat, das heisst wenn du sagen kannst das dich der "grössere Bereich" nicht interessiert, dann musst du die unterbereiche darin garnicht erst untersuchen etc, womit du sehr viel Rechenaufwand direkt verwerfen kannst. 4. ist der einzige knackpunkt, denn es setzt voraus, dass du dich mit 3D Mathe auseinander setzt. Denn das Problem ist, dass nur die wenigsten Vertices genau auf der Kante zwischen 2 Bereichen aufhören, also musst du die Polygone (3D Ebenen in denen sie liegen) schneiden mit der Kante des Würfels und so neue Vertices und Triangles erzeugen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
c64 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erst
Code: [AUSKLAPPEN] EntityInview (ENT,CAM)
dann Code: [AUSKLAPPEN] EntityVisible (CAM,ENT)
Wenn ich das Problem richtig verstanden habe sollte es das gewesen sein ! Eigentlich hätte es nach Sucos Info klar sein sollen ! [Edit] Ahso es geht ja um kleinere Punkte, hmm dann würd ich das Modell mit bestimmten Punkten bestücken (pivots,entitys) und diese dann Prüfen. [/edit] mfg. C64 |
||
Betreten verboten! Kinder haften für ihre Eltern! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
ICH WILL AUCH WISSEN OB WAS IM WEG IST!
Und eigentlich hätte das nach meinen ganzen anderen posts klar sein müssen. |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group