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

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

1

22.08.2006, 17:29

Picking mit terrain

Also, die Sache sieht so aus!
Ich benutze in meinem programm picking.
Ich berechne dann immer den Schnittpunkt zwischen meinem Ray und einer Ebene die einfach platt auf dem boden liegt um den objekten zu sagen wo sie hinsollen. das funktioniert auch...
Bloß jetzt hab ich mein terrain mit eingebaut und jetzt kann ich natürlich nicht mehr einfach die ebene benutzen.
Ich müsste ja jetzt quasi jedes einzelne Dreieck meines terrains auf einen schnittpunkt mit meinem ray überprüfen...
bei einer auflösung des terrains von 256*256 wären das ja dann immer hin 2*(256 -1)² = 13050 dreiecke.
Das kanns ja wohl nicht sein!
Ideen?
Danke und Gruß
Vincent

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

2

22.08.2006, 18:07

Man könnte nur den sichtbaren Bereich des Terrains testen...
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

3

22.08.2006, 19:26

Ich hab eine ganz tolle idee...
Ich teste nur wenn auch geklickt wurde!!!
Was für ein geistes blitz... :roll:

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

23.08.2006, 04:41

Und BSP oder Octree sind auch einer Überlegung wert :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

23.08.2006, 10:16

quadtree

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

6

28.08.2006, 12:41

hmm ja. hab ich auch schon gedacht... muss mal gucken!Danke!Gruß Vincent

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

7

28.08.2006, 12:57

Falls Dein Terrain nur "langwellige" Höhenschwankungen hast, kannst Du auch so arbeiten:

1. Hoehe := 0;
2. Du arbeitest so wie bisher und bekommst einen ersten Schnittpunkt von der Eben in Höhe Hoehe und Deinem Strahl.
3. Für diesen (2D Koordinaten) schaust Du die Höhe nach und setzt "Hoehe". Eine Funktion 2D -> Höhe solltest Du sowieso haben
4. Solange du noch starke Abweichungen findest und/oder noch nicht 5 mal die Schleife durchlaufen hast, springst Du zu 2.

Vorteil: Du musst fast nichts programmieren, jedenfalls wenn Du die 2D -> Hoehe Funktion schon hast.
Nachteil: Nicht exakt, kann bei kurzwelligen Höhenschwankungen u.U. nicht (auf den richtigen Wert) konvergieren.
Langwellig heist 2D Bergdurchmesser >~ 2D Abstand Auge - Schnittpunkt
Es hängt also auch davon ab, wie steil Du runter schaust.
"Games are algorithmic entertainment."

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

8

28.08.2006, 13:13

aha.. werd ich auf jeden fall mal implementieren!
mal sehen ob das schon ausreicht!
Danke!

p.s. eine 2d Hoehe funktion hab ich natürlich schon!
Sagt der igel zu dem dachs:
willst du größer sein, dann wachs!
- alte Fritz weisheit

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

28.08.2006, 13:41

du kannst evtl. die genauigkeit von osrams lösung erhöhen, indem dus ähnlich machst wie man z.b. bei parallax mapping vorgeht.

wie bei osrams vorschlag berechnest du den 2d schnittpunkt mit der ebene und setzt die höhe ein um den ausgangspunkt zu erhalten.
dann projizierst du den (normalisierten) richtungsvektor des strahls auf die ebene (y bzw. z (je nachdem welche "nach oben" geht) koordinate 0 setzen :P ) und multiplizierst das ganze mit einem faktor (<-- musst ein bisschen probieren) und dem höhenwert, ziehst das ganze vom ausgangspunkt ab und liest an -> neuer, genauerer punkt.
jetzt nur noch den höhenwert am neuen, endgültigen punkt auslesen.

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

10

28.08.2006, 13:54

Klasse! ich habs mal konstant auf 8 durchgänge gesetzt und es klapp 1a!
(bis jetzt...) :D
DANKE!
Gruß Vincent
Sagt der igel zu dem dachs:
willst du größer sein, dann wachs!
- alte Fritz weisheit

Werbeanzeige