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

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

1

05.07.2009, 20:16

Kollision zwischen model und terrain

hi all,

ich hab mir mal vorgenommen ein simples terrain also ein unebener Boden und ein 3d Modell zu machen. Das 3d Modell soll sich einfach nur in ein zwei richtung auf dem terrain bewegen können.

Schwer zu erklären:

wenn ich auf einem Berg stehe und ich will den Berg runterlaufen aber ich bewege mein Objekt nur auf der X-achse.... dann könnt ich ja eine Gravitation für das model auf der Y-Achse machen um herunter zu laufen oder?

Nur ich frag mich grad wie ich das hin bekomme, wenn ich vor einer kleinen steigung stehe und hochlaufen will, dann muss ja mein Programm irgendwie erkennen dass eine Steigung vor mir liegt und die Y-achse verändern/erhöhen oder?

Kann es mir einer erklären oder mir nen link zu dem Thema geben oder irgendwas?
New Project: Operation CityRacer

2

05.07.2009, 20:20

Jop da musst du Y-Punkte ändern.
Du könntest ja einfach ne Physik Engine integrieren wie zb Newton.
Oder halt alles per Hand machen zb mit Raycasts um halt den Y-Punkt rauszufinden.

Mfg
Zero

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

3

06.07.2009, 12:58

hmmm...ok hat meine vermutung gestimmt :D
ist raycasting arg schwer zu lernen?
hab mir auch mal Newton angeguckt versteh aber nich so ganz wie des gehen soll. Man ladet dann eine neue welt und darin kann man dann ganz normal seine Objekte laden und bewegen mit kollision und so oder wie funktioniert des? (nur aus interesse )
New Project: Operation CityRacer

4

06.07.2009, 15:33

Naja du müsstet zb nen Wrapper schreiben für Newton und deine Engine. Also du musst du dann Newton sagen, an Pos x y z ist da ein Modell und halt die Daten übergeben wie es aussieht etc, das Newton sich daraus nen Kollisionsmodel basteln kann^^

Benutzt du ne eigene Engine?
Könntest dir zb mal OgreNewt anschauen, ist halt nen Wrapper für Ogre.

Naja und sonst mir Raycasting, da habe ich keine Ahnung, wenn du nen gutes Tut findest würde ich es mir auch mal gerne Interessehalber ansehen^^

Zero

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

5

06.07.2009, 16:03

jetzt wollt ich mal fürn anfang die tribase engine nehmen
New Project: Operation CityRacer

6

07.07.2009, 15:30

könntest das ganze für den anfang ja auch billig lösen:

du weißt ja wie dein terrain aussieht und wie dein objekt aussieht.

also hast du einfach sowas für die gravitation

Quellcode

1
newpos.Y = Max( terrain->GetHeight( newpos ), oldpos.Y - gravity.Y );


so als grober ansatz. vl hilft er dir :)

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

7

01.08.2009, 17:43

gibts zu dem Thema ein bestimmte Bezeichnung wonach ich einfach mal googeln könnte?
New Project: Operation CityRacer

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

8

02.08.2009, 12:51

vom grundsatz her reicht es zu wissen, wie die minimale y-position an einem bestimmten punkt ist. dazu kannst du einfach aus deiner heightmap in einem quad linear interpolieren und dann haste deinen punkt und kannst einfach fallen lassen bis die y-position gleich der minimalen höhe ist^^

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

9

02.08.2009, 15:05

hmm...

Zitat

in einem quad linear interpolieren


Bahnhof?.....wie stell ich des am besten an...?
New Project: Operation CityRacer

10

02.08.2009, 17:14

Natürlich funktioniert das nur, wenn das Quad planar ist.
Also entweder nimmst du das Quad oder eben die beiden Dreiecke und guckst dir die Ebenengleichung an. Dann kannst du recht leicht den Schnittpunkt mit einem Strahl parallel zur y Achse berechnen (der durch die Spielerposition läuft) und schon hast du deine Höhe am Terrain.

Wenn du das nicht alleine hinkriegst, solltest du n bissle Lineare Algebra wiederhohlen, denn wenn man 3D Spiele machen will, muss man auch mit "3D Mathe" zurecht kommen ;-)
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige