Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Физика

Ответ
 
Опции темы
Старый 05.01.2008, 13:25   #1
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
не могу в Physx поворачивать Joint быстро, помогите!

Сосдал простую систему машины тело 4-ри колеса из Joint-ов,а поворачиваться быстро он не хочет ну или не может
я что тока не пробовал
------------------------------------------------------------------------
pxBodySetLocalAngularSpeed

pxBodyAddTorque

похожий эффект нифига не вертятся
------------------------------------------------------------------------
pxBodySetLinearSpeed

естественно таскает из стороны в сторону
------------------------------------------------------------------------
даже rotation пробовал то же непонятные траблы возникают
вобщем помогите пжалстааа
(Offline)
 
Ответить с цитированием
Старый 05.01.2008, 20:57   #2
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: не могу в Physx поворачивать Joint быстро, помогит

покажи код!
Сосдал простую систему машины тело 4-ри колеса из Joint-ов
Джоинты не физические тела, они не могут входить в контакт с объектами. Служат для связки объектов с чем либо!
Еслежи ты создал колеса как объекты то:
1- Слабое трение зеля\колёса
2- Колеса непрвельно крутишь.
3- Нада убрать огроничитель скорости поворота объекта.
4- Колеса весом больше сомой машины
5- Ошибочный выбор типа джоинта
6- Неправельно направлено соеденение джоинта

В физиксе есть встроеные колеса обычные и райкаст.
(Offline)
 
Ответить с цитированием
Старый 05.01.2008, 22:12   #3
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

да сказанул, я конечно на счёт джонтов

вот

тут меши загружаю а из них боди делаю.

arenM=LoadMesh ("aren.b3d")
PositionEntity arenM,0,0,0
arenB=BodyCreateMeshB(arenM,0)

rolm=LoadMesh("rol.b3d")
ScaleEntity rolm,1,1,1
rolb=BodyCreateMesh(rolm,70)
pxBodySetPosition rolb,3,57.65,-1.8
pxBodySetRotation rolb,0,-90,0

rolm2=LoadMesh("rol.b3d")
ScaleEntity rolm2,1,1,1
rolb2=BodyCreateMesh(rolm2,70)
pxBodySetPosition rolb2,-2.5,57.7,-1.8
pxBodySetRotation rolb2,0,-90,0

rolm3=LoadMesh("rol.b3d")
ScaleEntity rolm3,1,1,1
rolb3=BodyCreateMesh(rolm3,70)
pxBodySetPosition rolb3,-2.5,57.7,1.8
pxBodySetRotation rolb3,0,-90,180

rolm4=LoadMesh("rol.b3d")
ScaleEntity rolm4,1,1,1
rolb4=BodyCreateMesh(rolm4,70)
pxBodySetPosition rolb4,3,57.65,1.8
pxBodySetRotation rolb4,0,-90,180

UAZM=LoadMesh("body.b3d")
ScaleEntity UAZM,1,1,1
UAZB=BodyCreateMesh(UAZM,1200)
pxBodySetPosition UAZB,0,60,0
;pxbodysetscaleentity

-------
дальше их скрепляю

(blk=pxJointCreateSuspBack(UAZB,rolb,3,57.65,-1.
pxJointSuspSetLinLimit(blk, 0.2)
pxJointSuspSetLinParameter(blk, 10000,10,10)

blk2=pxJointCreateSuspFront(UAZB,rolb2,-2.5,57.7,-1.
pxJointSuspSetLinLimit(blk2, 0.3)
pxJointSuspSetLinParameter(blk2, 10000,10,10)

blk3=pxJointCreateSuspFront(UAZB,rolb3,-2.5,57.7,1.
pxJointSuspSetLinLimit(blk3, 0.3)
pxJointSuspSetLinParameter(blk3, 10000,10,10)

blk4=pxJointCreateSuspBack(UAZB,rolb4,3,57.65,1.
pxJointSuspSetLinLimit(blk4, 0.2)
pxJointSuspSetLinParameter(blk4, 10000,10,10))

---------------------------
ну а тут вот и стопорюсь

While Not KeyHit(1)

pxRenderPhysic(30,0)

PositionEntity camera,EntityX(uazm),EntityY(uazm)+20,EntityZ(uazm )-30

If KeyDown (200)
n1#=n1+0.01
If n1>500 n1=500
Else If KeyDown (20
n1#=n1-1
If n1<-15 n1=-15
Else
n1=0
;If n1<0 n1=0
EndIf


If KeyDown (203)
angle# =angle -1
If angle<-50 angle=-50
key=1
Else If KeyDown (205)
angle# =angle +1
If angle>50 angle=50
key=2
Else If angle<0
angle# =angle +1
Else If angle>0
angle# =angle -1
EndIf


pxJointSuspSetAngle(blk2, angle)
pxJointSuspSetAngle(blk3, angle)

;pxBodySetLinearSpeed(rolb,-n1*10,0,0)
;pxBodySetLinearSpeed(rolb4,n1*10,0,0)

pxBodySetLocalAngularSpeed(rolb,-n1*1000,0,0)
pxBodySetLocalAngularSpeed(rolb4,n1*1000,0,0)

;pxBodyAddTorque(rolb3,0,angle*1000,0,2)
;pxBodyAddTorque(rolb2,0,angle*1000,0,2)

pxBodySetEntity (UAZM,UAZ
pxBodySetEntity (rolm,rolb)
pxBodySetEntity (rolm2,rolb2)
pxBodySetEntity (rolm3,rolb3)
pxBodySetEntity (rolm4,rolb4)

UpdateWorld ()
RenderWorld ()

Flip
Wend
End

Function BodyCreateMesh(mesh,mass)

Local nsurf = CountSurfaces(mesh)
Local nvert = 0
For ns = 1 To nsurf
Local surf = GetSurface(mesh,ns)
nvert = nvert + CountVertices(surf)
Next
vbank = CreateBank(nvert*4*3)
nv = 0
For ns = 1 To nsurf
surf = GetSurface(mesh,ns)
nvv = CountVertices(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

Function BodyCreateMeshB(mesh,mass)

nsurf = CountSurfaces(mesh)
nvert = 0
nface=0
For ns = 1 To nsurf
Local surf = GetSurface(mesh,ns)
nface = nface+CountTriangles(surf)
nvert = nvert +CountVertices(surf)
Next

fbank = CreateBank(nface*4*3)
nf = 0
vbank = CreateBank(nvert*4*3)
nv = 0
For ns = 1 To nsurf
surf = GetSurface(mesh,ns)
nfv = CountTriangles(surf)
For nfc = 0 To nfv -1
PokeInt fbank,nf*12+0,TriangleVertex(surf,nfc,0)
PokeInt fbank,nf*12+4,TriangleVertex(surf,nfc,1)
PokeInt fbank,nf*12+8,TriangleVertex(surf,nfc,2)
nf=nf+1
Next

nvv = CountVertices(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
bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface,mass)
FreeBank vbank
FreeBank fbank
Return bbb%
End Function
(Offline)
 
Ответить с цитированием
Старый 05.01.2008, 23:01   #4
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: не могу в Physx поворачивать Joint быстро, помогит

Для работы с физ темали про функции-
PositionEntity, ScaleEntity, RotateEntity, TurnEntity
Можеш забыть. Этими функциями ты НЕ изменяеш саму сетку модели, а именно она передаёться в физический движок для построения тела!

PositionMesh, ScaleMesh- этим можеш пользоваться.
(Offline)
 
Ответить с цитированием
Старый 06.01.2008, 02:45   #5
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

зря наверно я не выделил самой проблемы

она сдесь

pxBodySetLocalAngularSpeed(rolb,-n1*1000,0,0)
pxBodySetLocalAngularSpeed(rolb4,n1*1000,0,0)

иди сдесь

pxBodyAddTorque(rolb3,0,angle*1000,0,2)
pxBodyAddTorque(rolb2,0,angle*1000,0,2)

прикол в том что какое значение не давать n1 колесо вертится оч медленно.
(Offline)
 
Ответить с цитированием
Старый 06.01.2008, 03:15   #6
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: Re: не могу в Physx поворачивать Joint быстро, помогит&#10

Сообщение от CRASHER Посмотреть сообщение
прикол в том что какое значение не давать n1 колесо вертится оч медленно.
от того что на объекты по умочанию стоит огроничитель скорости поворота.
(Offline)
 
Ответить с цитированием
Старый 06.01.2008, 06:19   #7
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

ахаа

а как жеш его, это ограничение убрать?
(Offline)
 
Ответить с цитированием
Старый 06.01.2008, 16:27   #8
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

вро де как убрал ограничение, с помощью вот этой команды
pxBodySetMaxAngularSpeed

теперь как бы мне по крепче с дорогой колесо сцепить?
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 01:34   #9
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

ну и ладно:p . Раз никто не хочет мне помоч тогда хоть скажите какой по вашему мнению метод моделирования физики машины проще и правдоподобней? Я знаю что есть команды со словом car и со словом wheel ну и естетственно joint.
P.S. обязятельно шоб калёса скользили реалистично
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 11:31   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: не могу в Physx поворачивать Joint быстро, помогит

CRASHER, есть 2 метода реализации машины в PhysX, первый это на RayCast основе, это уже имеющиеся набор функций в движке, для создания машинки, хоть и достаточно скудный набор функций, но на самом деле больше и не нужно, конечно реализация машинки не упираеться в простом применении этих функций, важно настроить и подобрать необходимые значения, а ещё важнее это создать динамичные эллементы, такие как: динамичное изменение центра тела машины; динамичное изменение трения (для дрифтов, реалистичного заезда на склоны и т.п.), поэтому считаю RayCast достаточно (если ты не делаешь симулятор ). На костях немного сложнее, но результат тоже можно добить неплохой. Сразу скажу что в обеих случаях нужно кодить собственную динамику.
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 14:25   #11
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

MoKa, ммммм а где ж этот raycast находится, то есть это что стандартная команда блитза? или метод реализации, или всётаки что то из physx?

еслс последнее то простеньким примерчиком помохите
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 15:04   #12
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: не могу в Physx поворачивать Joint быстро, помогит

В стандартных самплах физикса, есть оба способа реализации подвески.
RayCast - это хз как сказать, в общем в PhysX есть отдельно раздел с функциями, "Car - RayCast" так и называеться.
(Offline)
 
Ответить с цитированием
Старый 10.01.2008, 01:36   #13
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

MoKa, а у меня блтз команды с car вобще не определяет
да и в примерах только джоинтовая система, и победа с wheel системой
что делать?
(Offline)
 
Ответить с цитированием
Старый 10.01.2008, 12:06   #14
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: не могу в Physx поворачивать Joint быстро, помогит

CRASHER, прочти внимательно предыдущие посты.
Го справка, можешь качнуть так-же от сюда.
Раздел - Car (RayCast), а дальше, можешь заметить функции начинаються с "pxWheel". Это и есть функции для создания машинки на РэйКастах.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
CRASHER (10.01.2008)
Старый 10.01.2008, 13:21   #15
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Re: не могу в Physx поворачивать Joint быстро, помогит

Ну спасыбо, благодарю от всей души
давно о таком файлике мечтал.
Буду вникать
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать код(видимость+тип+спис Putin 3D-программирование 1 06.05.2009 00:57
Все статьи, уроки,дополнения, ошибки компl anton_obuhov Основной форум 3 14.09.2008 13:11
Работа нескольких программ в одной anton_obuhov Основной форум 4 10.09.2008 11:15
Нечитаемость русских символов Maestro Болтовня 2 19.01.2008 20:55
А вот и ещё тема по текстурированию ландшk CRASHER Создание текстур 4 16.01.2008 18:10


Часовой пояс GMT +4, время: 22:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com