collision (mesh mit terrain)
Übersicht

bieglBetreff: collision (mesh mit terrain) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe mal wieder ein problem...
ich habe eine map (3ds terain) und ein player mesh. ich hatte zuvor anstatt eines meshes eine kugel da hatte ich die kolli so: Code: [AUSKLAPPEN] Collisions player_col,terrain_col,2,3
aber jetzt wo ich ein mesh habe das definitiv keine kugel ist funktioniert die kolli nimmer... mir ist schon klar an was es liegen könnte: ich habja jetzt eine kugel-polygon abfrage und wenn ich das mesh anstatt der kugel nehem ist es ja dann eine polygon-polygon abfage aber das gibt es ja nicht? bitte helft mir... mfg biegl |
||
biegl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok das problem hat sich gelöst.. ich hatte vergessen dem mesh den pivot als parent zu zuweisen.
Aber ein weiteres collision problem ergibt sich.. wen der player einen zu steilen berg hochläuft funzt die kolli nicht mehr und er knallt durch die map.... |
||
Roterblitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
biegl hat Folgendes geschrieben: ok das problem hat sich gelöst.. ich hatte vergessen dem mesh den pivot als parent zu zuweisen.
Aber ein weiteres collision problem ergibt sich.. wen der player einen zu steilen berg hochläuft funzt die kolli nicht mehr und er knallt durch die map.... Benutzt du ein eigenes Mesh als Terrain ? oder das Loadterrain von Blitz3D ? bei Kugel to Mesh Collisionen gibst schon immer Probs in Blitz ![]() Hier musst du am besten eine eigene Collisions Routine proggen die von Blitz3D ist für eigene Terrain Meshflächen wohl zu ungenau und deine Kugel unten am Char fällt durch das Mesh ![]() ![]() Bei Loadterrain immer noch zusätzlich TerrainY korrekt abfragen und in dieser Coll Routine die Kugel wieder aufs Terrain zusetzten ! Fehler bei Loadterrainund Collision sind auch oft die Typen der Variablen, stell sicher das du hier zB keine INT und FLOAT vermischt und dadurch Werte zerhackst., |
||
User posted image |
biegl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm.. danke...
ichbenutze ein selbst erstelltes terrain (liegt in 3ds vor..). Wie meinst du das mit selbst eine collisions routine proggen? Kannst du mir das mal genauer erläutern? mfg biegl (TheTrigger) |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nun ich kann zwar nichts sinvolles zum Thema beisteuern habe aber auch ein Problem mit der Kollision von einem Mesh mit dem Terrain.Ich habe dem Mesh(flieger) einen Kugelförmigen Pivot als Parent zugeteilt aber trotzdem bleibt mein Mesh nicht stehen wenn es mit dem terrain Kollidiert sondern fliegt einfach hindurch.Ich sitze schon ziemlich lange an diesem Problem,sehe mich aber auserstande es ohne hilfe dritter zu lösen.
Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() ;Laden der Texturen und Meshs terrain=LoadTerrain("f:\newheightmap.bmp") text1=LoadTexture("C:\Programme\Blitz 3D\Tools\Textures\Urban\Urb009.bmp") haus=LoadTexture("f:\glass30.bmp") Mesh=LoadMesh("f:\3dModeller\Hand.3ds") Gebaude=LoadMesh("f:\hhouse.x") flieger=LoadMesh("f:\Flieger.3ds") himmel=LoadTexture("C:\Programme\Blitz 3D\Samples\Blitz 3D Samples\AGore\GrassDemo\Data\sky_Up.bmp") himmelr=LoadTexture("C:\Programme\Blitz 3D\Samples\Blitz 3D Samples\AGore\GrassDemo\Data\sky_RT.bmp") ;Globals für die Kollision Global Feld=1 Global player=2 ;Objekt richtig drehen TurnEntity flieger,-90,0,90 ;Erstellen eines Pivot für die Kollision pivot=CreatePivot() sky=CreateCube() EntityRadius pivot,0.2 PositionEntity pivot,3000,1000,8000 FlipMesh sky ScaleEntity sky,6350,9000,6400 PositionEntity sky,6500,-2000,6400 EntityOrder sky,1 ;Das Terrain erstellen und Texturieren EntityTexture terrain,text1,0,0 ScaleEntity terrain,100,200,100 ScaleTexture text1,100,200 ;Spielfigur posizionieren PositionMesh flieger,-8000,-5000,2000 TerrainDetail terrain,8000,True ;Position der Hand PositionMesh Mesh,4000,800,8000 ;Position des Hauses PositionMesh Gebaude,6000,30,9000 ;Die Textur des Hauses bearbeiten und verwenden SetCubeFace himmel,4 SetCubeFace himmelr,2 RotateTexture haus,180 EntityTexture Gebaude,haus EntityTexture sky,himmel ;;;;;;;;;;;;;;;;;;;;;;;;;;------Die Eintsellung der Kamera auf Thirdperson sicht ;; ;; ;Kameravoreinstellungen cam=CreateCamera() PositionEntity cam,5100,2050,8075 CameraRange cam,1,80000 light=CreateLight() LightRange light,80000 TurnEntity light,45,45,45 EntityParent light,cam ;Einstellungen für die Sicht TurnEntity cam,10,106,0 EntityParent flieger,cam PositionEntity cam,3007,1025,5845 TurnEntity cam,270,0,270 ;Kollisionsabfrage EntityType terrain,Feld EntityType pivot,player Collisions player,Feld,2,1 ;Steuerung des Spieler und der Cam ;;;;;;;;;;;;;;;;;;;;-------Hauptschleife While Not KeyHit(1) ;Mausabfrage RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 ;muss immer mesh parent sein!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! If KeyDown(200)=1 Then MoveEntity cam,0,0,70 If KeyDown(203)=1 Then MoveEntity cam,-70,0,0 If KeyDown(205)=1 Then MoveEntity cam,70,0,0 If KeyDown(208)=1 Then MoveEntity cam,0,0,-70 UpdateWorld RenderWorld Flip Wend ClearWorld End |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@sven konnte den code nicht testen ohne meshs aber ich glaub du hast deinen flieger das pivot nicht als parent zugeteilt
(bzw. du müsstest die camera UND den flieger dem pivot zuordnen und beide mit dem pivot bewegen) @biegl hier muss ich roterblitz widersprechen. es ist ganz egal wieviele polygone deine "kugel" hat. den durchmesser für die kollision gibst du ohnehin mit entityradius an, und daher ist es ganz egal was für eine form dein mesh hat (sphere, maxl oder sonstwas), da dein mesh ohnehin nicht überprüft wird. von dem gerücht das kugeln manchmal durch terrains fallen habe ich schon gehört, sollte das ein ernsthaftes problem werden, so schlage ich vor du verdoppelts die abfragegeschwindigkeit - quasi du zeichnest nur jedes 2te mal mit renderworld und flip. damit sollte wieder für ausreichend genauigkeit gesorgt sein. mfg stfighter |
||
Denken hilft! |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@stfighter01
Das war nicht der Kern des Pronlems ich habe jetzt den pivot als parent von Cam und vom Mesh.So hier habe ich dir jetzt mal alle Daten des Proggis als zip bereitgestelt.Wie gesagt ich kann beim besten willen nicht herausfinden warum es nicht geht. http://home.arcor.de/the_fuzzy/Test3d.zip |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@seven123 wenn ich das richtig sehe drehst und bewegst du die cam und nicht den pivot..... ![]() |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ach so muss ich dann den Pivot bewegen und nicht die Kamera oder peide. | ||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
biegl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@stfighter01
ich habe keine kugel sondern im mom das mario mänchen aus dem castle samle.. und das fällt bei zu steilen bergen auch durch.. wie meinst du das mit renderwold 2mal abfragen ich frage jetzt im mom renderworld und flip am ende meiner hauptschleife ab.. mfg biegl |
||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@sven123 ja is auch logisch du hast ja nen pivot als parent von deinem mesh und der cam und wenn du den pivot drehst drehen sich auch die cam un das mesh ![]() ![]() by Darren |
||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
da hätte ich mal ne andre frage.....
undzwar wie groß muss ich die scybox machn wenn mein terrain zb 1000x1000 groß is?? |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe das bei mir einfach so gemacht:Einen kelinen Würfel erstellen und denn dann durch scaleentity immer weiter hochscalieren,dann den Befehl flipmesh verwenden damit man die Kanten des Würfels innen sieht.Fertig!Also wenn das deine Frage war,da gibt es keine bestimmte größe einfach auf eben beschriebenen wege ausprobieren. | ||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hätte allerdings auch noch eine Frage der Kollision betreffend.Wenn ich den pivot als parent von flieger(Mesh) und cam deklariere und diesen dann bewege funktioniert meine Steurung nicht mehr richtig auserdem wird die Kollision von der Camera mit dem Boden Gebrüft aber ich möchte ja die Kollision von dem Mesh mit dem Terrain testen lassen.Wie mache ich die Kollision richtig? | ||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
biegl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also das mit der colli regt michlangsamm auf ... | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Hilfe ist relativ umfangreich.
Man sollte sie sich vielleicht wirklich mal angucken. zum einen was Parent etc bringt und zum anderen betreffend die Kollision, mit welcher man das Objekt versieht das man prüfen will! Sprich wenn du cam und flieger hast setzt du colli für flieger und net für die cam. Und was das steuern betrifft: Das hängt davon ab wo der 0,0,0 punkt bei deinem flieger ist, denn um den punkt wird rotiert. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Afwan(Sorry) für die vielen dummen fragen der Kollison betreffend,ich habe es aber wirklich nicht geblickt. ![]() |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab die cam in jeden schleifen durchlauf die cam immerwieder richtig positioniert | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group