Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

24.08.2011, 13:11

Ja, das mit dem Frustum ist mir klar.

Jedoch das ich einen 3 Vektor brauche, macht insofern Sinn, dass ich die Normale berechnen kann.
Um eine Ebene zu definieren brauche ich ja eigentlich nur einen Aufhängepunkt und eine Normale...

Also brauche ich noch die Grauen Linien (siehe Bild von vorher), mit denen kann ich dann die Normale jeder der 4 Ebenen, welche ich brauche, berechnen.

Sehe ich das Richtig??

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

24.08.2011, 13:27

Ich würd mir einfach eine off-center perspective Projection-Matrix machen und dann aus der die Ebenen für mein Frustrum extrahieren...

13

24.08.2011, 13:34

Und wie mache ich das??

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

24.08.2011, 13:46

Also brauche ich noch die Grauen Linien (siehe Bild von vorher), mit denen kann ich dann die Normale jeder der 4 Ebenen, welche ich brauche, berechnen.

Sehe ich das Richtig??

Du brauchst zwei Vektoren. Sprich je "eine graue Linie" und den Vektor in die Tiefe. Vom Prinzip her kann der aus den Vektoren Deines View-Frustums bestimmt werden indem diese einfach interpoliert werden. Geht prima, hab ich schon mal irgendwo gemacht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

16

24.08.2011, 13:54

So jetzt funktioniert alles so wie ich das gerne möchte =)
Folgendermassen gehe ich vor:

Als erstes ermittle ich das Rechteck, welches der Benutzer ausgewählte hat. Zusätzlich ermittle ich den Strahl (graue Linie), von jedem Eckpunkt.
Die Normale der Ebene ergibt sich dann mit dem Kreuzprodukt aus dem Strahl und dem Vektor zwischen 2 Eckpunkten.

Der Aufhängepunkt der Ebene ist der Mittelpunkt zwischen 2 Eckpunkten.

Anschliessend rechne ich die Determinante jeder Fläche aus, damit ich am Ende jeden Punkt in meiner Szene prüfen kann.
Wenn nun alle Werte grösser als 0 sind, befindet sich der Punkt vollständig in meinem Frustum und somit in der Selektion des Benutzers.

Werbeanzeige