www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=101)
-   -   Physx & Xors3d (http://forum.boolean.name/showthread.php?t=7201)

rustem 16.10.2008 17:46

Physx & Xors3d
 
Хотелось бы узнать, создаю мир в Ксорсе и тут же физический
Имеется тачка и мирок маленький, все удачно грузится.
С помощью сэмпла создаю им ригид боди, ставлю гравитацию но ничего не меняется, посмотрите, откомментироуйте, плиз :)

Самое главное во всем этом. выдает ошибку Memory access violation - на строке присвоения позиции меша к ригид боди pxDX9BodySetEntity (city,city_body)

Include "b3d_dx9.bb"

xgraphics3d 1024,768,32,0

pxCreateWorld(0,"key")
pxSetGravity 0,-70,0

cam = xcreatecamera()
light = xcreatelight(spot)
xpositionentity cam,90,50,-90

car = xloadmesh("lamb.b3d")
car_phys = xloadmesh("lamb_phys.b3d")
car_body = bodycreatehull(car_phys,100)
xEntityAlpha car_phys,0.5

city = xloadmesh("plane.b3d")
city_phys = xloadmesh("plane.b3d")
city_body = bodycreatehull(city_phys,0)
pxDX9BodySetEntity (city,city_body)

While Not xKeyHit(key_escape)
xPointEntity cam,car

pxRenderPhysic 60,0
pxDX9BodySetEntity(car, car_body)
xupdateworld
xrenderworld
xtext 10,10,xGetFPS
xFlip
Wend

End


Function BodyCreateHull%(mesh%, mass)

Local nsurf = xCountSurfaces(mesh)
Local nvert = 0
For ns = 1 To nsurf
Local surf = xGetSurface(mesh,ns)
nvert = nvert + xCountVertices(surf)
Next
vbank = CreateBank(nvert*4*3)
nv = 0

For ns = 1 To nsurf
surf = xGetSurface(mesh,ns)
nvv = xCountVertices(surf)
For nvc = 0 To nvv - 1
PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
nv = nv+1
Next
Next
Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
FreeBank vbank
Return bbb
End Function

Colossus 25.10.2010 18:41

Ответ: Physx & Xors3d
 
если не ошибаюсь Функция создания Хулла на Xors3D выглядит так:

Код:

Function xCreateHull(mesh%,mass#)
    VB = xGetMeshVB(mesh)
    VB_size = xGetMeshVBSize(mesh)
    cube_body=pxBodyCreateHull(VB, VB_size, mass)
    Return cube_body
End Function


Knightmare 25.10.2010 19:02

Ответ: Physx & Xors3d
 
Вложений: 1
Вложение 11581

.Squid 25.10.2010 20:47

Ответ: Physx & Xors3d
 
Цитата:

Сообщение от Colossus (Сообщение 166023)
если не ошибаюсь Функция создания Хулла на Xors3D выглядит так:

Код:

Function xCreateHull(mesh%,mass#)
    VB = xGetMeshVB(mesh)
    VB_size = xGetMeshVBSize(mesh)
    cube_body=pxBodyCreateHull(VB, VB_size, mass)
    Return cube_body
End Function


Спорим, что она выглядит так: xEntityAddHullShape (Entity *entity, float mass) ?

Colossus 27.10.2010 09:42

Ответ: Physx & Xors3d
 
Цитата:

Сообщение от .Squid (Сообщение 166047)
Спорим, что она выглядит так: xEntityAddHullShape (Entity *entity, float mass) ?

2.Squid, ну если брать Bullet, то да) именно так а если PhysX то так как я написал в предыдущем посте...:)

кстати, возможен ли синтез Bullet+PhysX ?:)

ABTOMAT 27.10.2010 20:41

Ответ: Physx & Xors3d
 
Цитата:

кстати, возможен ли синтез Bullet+PhysX ?:)
Назови хоть одну причину, зачем оно может понадобиться.
И да, невозможен.

Colossus 28.10.2010 19:53

Ответ: Physx & Xors3d
 
спасибо доктор Автэ )) MR F уже привнес ясность))


Часовой пояс GMT +1, время: 01:55.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Перевод: zCarot