Wie sollte ich Kollision an Bergen angehen?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

GearTechDE

ehemals 'KillerJo96'

Betreff: Wie sollte ich Kollision an Bergen angehen?

BeitragSo, Mai 01, 2011 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe Community, ich habe mich ja jetzt schon was der 3D Programmierung genähert. Jedoch habe ich einige Probleme in Sachen Terrain und Kollision. Mittlerweile habe ich es geschafft einen Terrain zu erstellen der auch Berge enthält etc. jedoch möchte ich jetzt das ich jetzt mit der Kamera da nicht einfach so durch fliegen kann sondern halt eine Kollision aufbaue... das ist mein erstes Problem...

Meine 2 te Frage ist, gibt es mehrere Möglichkeiten, Berge auf dem Terrain zu realisieren?
Ich kenne bis jetzt nur folgende:

Eine square jpg datei die schwarz ist und in der Mitte weiße Tupfer. alles was schwarz ist ist normaler boden, was weiß ist ist ein berg... Ist das sinnvoll?? wie kann ich sonst noch berge machen?? könnt ihr mir bitte helfen?

Google hat mir auch nicht weiter geholfen...

Lg Killerjo96
Mit freundlichen Grüßen: GearTechDE

ZaP

BeitragSo, Mai 01, 2011 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst vielleicht gar keine Kollision, wenn Du einfach mit TerrainY arbeitest. "Square JPG" auch Heightmap, ist wohl die gängiste Methode, um Berge zu realisieren.
Starfare: Worklog, Website (download)

GearTechDE

ehemals 'KillerJo96'

BeitragSo, Mai 01, 2011 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, danke schonmal für die Antwort. Könnte mir vielleicht einer genauer erklären wie ich diese Funktion benutze, aus der Anzeige in der Hilfe werde ich dummerweise nicht schlau...

Wäre echt nett.

Mal ne Frage, funktioniert das so das ich da wo ich nicht laufen möchte ich einfach die Koordinate eintrage und dann kann ich da nicht laufen?? Wäre ja auch eine Möglichkeit, wenn das geht xD

Danke schon im Voraus...


lg Killerjo96
Mit freundlichen Grüßen: GearTechDE

faeX

BeitragSo, Mai 01, 2011 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Variante mit TerrainY:

Du gibst die Koordinaten der Kamera an TerrainY und prüfst dann ob die Y-Koordinate von der Kamera kleiner als die TerrainY-Koordinate. Wenn ja, verschiebst du die Kamera von der Y-Koordinate her nach TerrainY.

Die allgemeine Kollisionsvariante:
BlitzBasic: [AUSKLAPPEN]
; Graphics, CreateCamera, Bla....
Const iCOL_CAMERA% = 1
Const iCOL_TERRAIN% = 2
Collisions iCOL_CAMERA, iCOL_TERRAIN, 2, 2
; Die erste 2 bedeutet: Die Kamera ist eine Kugel, und das Terrain benutzt seine Polygone für die Kollision
; Die zweite 2 bedeutet: Die Kamera "slidet" am Terrain und stoppt nicht einfach wenn sie das Terrain berührt

EntityType camCamera, iCOL_CAMERA
EntityRadius camCamera, 2 ; Wie gesagt, die Kamera ist eine Kugel und man kann ihr deshalb einen ;Radius zuweisen

EntityType entTerrain, iCOL_TERRAIN

; ----- weiterer Firlefanz
While Not KeyHit(1)

; Alles was halt so passiert...

UpdateWorld ; <<<< Wichtig! Vorher kann es sein, dass die Camera im Terrain "drinsteckt" oder dergleichen nach UpdateWorld nicht mehr!

; Rendern und co

Wend

ZaP

BeitragSo, Mai 01, 2011 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
TerrainY gibt dir die Höhe des Terrains an einer bestimmten Koordinate, z.B. der Kameraposition. So kannst Du die Kamerahöhe ganz einfach an das Terrain anpassen und die Kamera wird nicht mehr durch Erhöhungen hindurchgehen.

BlitzBasic: [AUSKLAPPEN]

Local camx# = EntityX(Camera, True)
Local camy# = EntityY(Camera, True)
Local camz# = EntityZ(Camera, True)
Local camoffset# = 1.0 ; damit die Kamera nicht im Boden klebt, wird das später auf die Höhe addiert...

PositionEntity Camera, camx#, TerrainY(Terrain, camx#, camy#, camz#) + camoffset#, camz#


Das ist keine Kollision, aber ich nehme einfach mal an, dass Du sowas gesucht hast.
Starfare: Worklog, Website (download)

GearTechDE

ehemals 'KillerJo96'

BeitragSo, Mai 01, 2011 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo. danke für die wahrscheinlich sehr hilfreichen antworten, ich glaube aber trotzdem das ich das noch nicht so verstanden habe. könntet ihr mir, wenn ich morgen mein Projekt hochlade, mal eine Kollision einbauen so wie ich die berge gerade habe?? also ich habe ja so gemacht das ich mit den pfeiltasten die cam bewegen kann. wenn ich jetzt nen Berg vor mir habe, möchte ich, das ich da nicht durch kann

wäre echt nett

edit: nochwas ich benutze ja dann denke ich mal heightmap wie kannich denndie Berg Höhe bestimmen?
Mit freundlichen Grüßen: GearTechDE

BastianA

BeitragMo, Mai 02, 2011 7:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst ja auch einfach ne EntityBox für ne Cam setzen und dann das Terrain mit Polys auf Kollision prüfen.
Nen Code dazu findest du in "Kollisionen - Ich checks nicht". Der ist komplett lauffähig, musste nur "map" durch "Terrain" ersetzen. Wink

GearTechDE

ehemals 'KillerJo96'

BeitragMo, Mai 02, 2011 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
wo finde ich den?


edit: Danke für den link

edit2: Hier mal mein Projekt:http://www.file-upload.net/dow...e.rar.html

könnte mir mal jemand in den Bergen kollision einbauen?? Vielleicht noch wenns geht uploaden + kommentare fürs lernen xD sonst hab ich ja nix davon.

VirusTotal: http://www.virustotal.com/file...1304335423
Mit freundlichen Grüßen: GearTechDE
  • Zuletzt bearbeitet von GearTechDE am Mo, Mai 02, 2011 13:31, insgesamt einmal bearbeitet

BastianA

BeitragMo, Mai 02, 2011 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
da:
https://www.blitzforum.de/foru...highlight=
 

Tigerass

BeitragMo, Mai 02, 2011 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe mal schnell was gemacht:
https://www.blitzforum.de/upload/file.php?id=10571

Ist dein Code, ein bisschen verbessert mit Beschreibung.

Und ich würde Mesh-Terrain werwenden. kannst du mit Blender oder Auch Gile[s] machen. Bei Gile[s] kannst du sie auch gleich lightmappen.

LG Tigerass

GearTechDE

ehemals 'KillerJo96'

BeitragMo, Mai 02, 2011 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
danke werde es morgen direkt mal studieren... danke dir

edit: Boah echt hammer Arbeit wirklich danke das ist ja echt cool...

Ich habe aber noch eine Frage,

BlitzBasic: [AUSKLAPPEN]

Collisions type_camera,type_terrain,2,2


setzt ja letzendlich fest das ich nicht gegen den berg laufen kann oder? D.h. also type_camera ist eine variable und der wird die Cam1 zugeordnet mit dem Befehl:

BlitzBasic: [AUSKLAPPEN]

EntityType type_camera,cam1


ist das richtig??

und bei dem Collisions oben die 2,2 wofür sind die?

edit2:Wie kann ich bei dem hight mapping die höhe des berges bestimmen?
edit3: habs rausgefunden. falls es jemand wissen will, es ist ganz einfach, je weisser desto höher. xD also wenn ich ganz tiefe berge machen wollt, holt euch gimp bei Chip.de und stellt die deckkraft auf 20.0 dann macht ihr kleine Hügel. je höher die deckkraft, desto höher die berge

Danke im Voraus. Gute Arbeit, fange langsam an es zu verstehen, außer das mit der Skybox
Mit freundlichen Grüßen: GearTechDE
 

Tigerass

BeitragMi, Mai 04, 2011 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoffe du kannst ein bisschen Englisch. Steht doch auch in der Blitzhilfe Was das bedeutet. Sogar mit Codebeispiel. Ich zitiere:


Collisions src_type,dest_type,method,response

method - collision detection method.
1: ellipsoid-to-ellipsoid collisions
2: ellipsoid-to-polygon collisions
3: ellipsoid-to-box collisions

response - what the source entity does when a collision occurs.
1: stop
2: slide1 - full sliding collision
3: slide2 - prevent entities from sliding down slopes


Die Variablen habe ich nur zur vereinfachung gesetzt, damit ich nicht durcheinander komme. Du kannst natürlich auch "entitytype cam1,1" schreiben, das läuft auf selbe hinaus. Also nur eine Sache damit ich den Überblick behalte.

Die Skybox musst du auch noch nicht verstehen. Da Wird nur eine Box gemacht, jede Seite mit der jeweiligen Sky-Textur Texturiert und dann nach innen gestülpt, damit du die Textur auch siehst.

Xeres

Moderator

BeitragMi, Mai 04, 2011 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
...oder verwendet gleich die deutsche Online Hilfe hier aus dem Portal...
Arrow Installation der BB Online Hilfe
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

GearTechDE

ehemals 'KillerJo96'

BeitragDo, Mai 05, 2011 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
danke leute habs jetzt verstanden
Mit freundlichen Grüßen: GearTechDE

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group