ODE Trimesh Problem
Übersicht

X0rBetreff: ODE Trimesh Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich habe folgendes Problem:
Code: [AUSKLAPPEN] Include "BlitzODE.bb" Graphics3D 800, 600 SetBuffer BackBuffer() PV = CreatePivot() cam = CreateCamera(PV) PositionEntity cam, 0, 10, -20 PointEntity cam, PV lh = CreateLight() plane = CreatePlane() PositionEntity plane,0,0,0 EntityColor plane, 0,0,150 SeedRnd MilliSecs() Global space = ODE_dWorldCreate(1) ODE_dSetContactMode(dContactBounce) ODE_dSetBOUNCE(0.1) g.TODEGeom = New TODEGeom g\body = ODE_dBodyCreate() g\geom = ODE_dCreateSphere(space,1,1) ODE_dGeomSetBody g\geom, g\body ODE_dBodySetPosition(g\body, 0,20,0) ODE_dBodySetRotation(g\body,20,20,209) g\mesh = CreateSphere() EntityColor g\mesh, 255, 255, 0 mesh=LoadMesh("mesh.b3d") scaleentity mesh,0.2,0.2,0.2 ;HIER IST DAS PROBLEM. geom = ODE_dTriMeshCreate(mesh) While Not KeyHit(1) ODE_dWorldQuickStep 0.1 ODE_UpdateGeoms() UpdateWorld RenderWorld Flip Wend ODE_dCloseODE() End Wenn ich also das Trimesh skaliere, dann gibts es ein Problem. Irgendwie denkt ODE dann, dass das mesh immernoch normale Größe hat und nicht skaliert ist. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo weil das Mesh immer noch genau gleich gross ist.
EntityScale verändert die Transformationsmatrix, nicht aber das Mesh. Da musst du die Meshbefehle nutzen oder falls ode einen skalierungsbefehl hat, diesen auch verwenden. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok. Geht mit scalemesh. Bei den examples sah ich oft scaleentity. Naja egal.
Sagen wir mal, dieses mesh wäre eine Schusskugel. So, wenn ich sie jetzt bewege mit positionmesh, dann bleibt das ODE Trimesh Objekt immernoch an gleich stelle. Kann ich das ODE Objekt irgendwie aktualisieren, so dass es immer die selbe Position mit dem mesh hat? Edit: Oh, gibt ein Befehl dafür. Wusste ich nicht. ODE_dGeomSetPosition geom,EntityX(mesh),EntityY(mesh),EntityZ(mesh) Aber dann muss ich moveentity nehmen. Wird das Objekt denn nicht mit moveentity verschoben? ![]() |
||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jetzt frag ich mich aber folgendes:
Wenn du ODE_dGeomSetPosition benutzt, verhält sich die Kugel, denn dann wie zB die Kugeln im Beispiel Spheres Demo.bb ? Ich meine, die Physikfunktionen verlieren doch mit Moveentity ihren Sinn, oder? |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe kein spheres Demo. Also eigentlich verlieren sie nicht die Funktion. Wenn dieses gemovte mesh nun z.B eine Kugel ist und ich bewege mich auch ein anderes geom zu, so wird alles richtig berrechnet und es klappt auch. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group