forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   проблемы с PhysX (http://forum.boolean.name/showthread.php?t=7216)

FuguNoo 20.10.2008 19:43

проблемы с PhysX
 
Здравствуйте.
если быть точным то проблемы скорее с моими знаниями.
ближе к делу.

недавно стал использовать физикс.Насколько понял мапы надо делать тримеом.
вот тут и появились проблемы
нарисовал карут в максе, сохраняю, создаю тримеш-работает.
все идеально.

потом текстурирую, усложняю сетку и ... не работает тримеш....
складывается ощущение что просто вершины и треугольники не правильно сообщены и в итоге "летаеш" по полигонами которых нету... врезаешся незнамо во что и т.п.
наверняка проблемы кроются в модели.
в сетке...
подумав я начал делать упрощенную модель карты и сохранять в отдельном файле.
а из блица уже создавать трим и удалять сетку.
а на месте ставить визуальную дитализированную карту.
так вот и жил
потом решил попробовать делать так.
сделал карту детализированную, убрать все текстуры, нажать ResetXform конвертировать в едитобл меш и сохранять в 3ds формате.

работало.
начал начит не париться насчет упрощенной кубикоподобной модели и делал только детализированную с верой что потом просто удалю материалы , пара кликов, и вот она - физ карта.
не тут то было....
проблема с неправильным сообщением физиксу о положении вершин вернулась! опять я хожу по "чему то" и бьюсь "обо чтото".
возвращаться к созданию упрощенной модели карты не очень хочется.
вопервых метод кажется нерациональным в плане времени, и откровенно говоря просто лень перерисоввывать довольно большой город в упращенном варрианте. возможно есть другие выходы?
какие же?
к тому же даже если делать упрощенную карту ... то где грань между простотой и этим.. как бы багом.

как НАДО создавать тримеши?
чем вызвана ЭТА ошибка
как её исправить.

P.S. я знаю что на плохо поставленные вопросы отвечают не очень хорошо.
и как каждый новичек на этом форуме прошу.. если я не очень хорошо задал вопрос... вместо глупого ответа , укажите ЧТО я не так спросил.. что бы изменить постановку вопроса и понять друг друга...
над данной пробелмой уже копаться сам устал.. мне кажется что проблема в модели... но как её (пробелму) надо решать и какую мапу делать... так понять и не смог

jimon 20.10.2008 22:42

Ответ: проблемы с PhysX
 
решение простое - откажись от тримешей

falcon 20.10.2008 22:48

Ответ: проблемы с PhysX
 
у меня была такая же проблема )
хз пока все работает...
просто карту для физики попроще подгружаю)

Mr_F_ 20.10.2008 23:46

Ответ: проблемы с PhysX
 
можно делать несколько тримешей.
я так и делаю.
заодно проверяю их "материал".

Isono 21.10.2008 07:14

Ответ: проблемы с PhysX
 
Сам только начал осваивать PhysX и такие же проблемы а отказаться от тримешей уж очень сложно и не хота, хотя баги иногда побеждают...

Вопрос: чем из заменить если отказаться от них? Кстати в Ньютоне такая же лажа?

ARA 21.10.2008 09:48

Ответ: проблемы с PhysX
 
В общем по горькому опыту знаю, что перед экспортом физ.карты нужно убрать все текстуры и применить стандартный блиц материал ко всей карте. Ну и конечно без упрощённой карты столкновений не обойтись. Делается она невероятно просто и быстро.

FDsagizi 21.10.2008 12:49

Ответ: проблемы с PhysX
 
Юзал три мешь для карты как она еть(полигонов очень много), и текстуры и все там было- все выше перечисленые проблемы решил доработав функцию создания три меша!

Помню была проблема что тримеши стоит не там где сам объект( выше ) Больше проблем не поню, да уже блиц вобщемто забывать начел...

H@NON 21.10.2008 13:53

Ответ: проблемы с PhysX
 
пока окончательно блитц не запамятовал, может выложишь функцию? будет весьма щедро с твоей стороны это сделать :)

falcon 21.10.2008 15:43

Ответ: проблемы с PhysX
 
если вспомниш функцию думаю благодарные найдуться :)

FDsagizi 21.10.2008 16:12

Ответ: проблемы с PhysX
 
Цитата:

Сообщение от falcon (Сообщение 89221)
если вспомниш функцию думаю благодарные найдуться :)

Цитата:

Сообщение от H@NON (Сообщение 89216)
пока окончательно блитц не запамятовал, может выложишь функцию? будет весьма щедро с твоей стороны это сделать :)

Да без проблем, юзайте на здоровье, и радуйтесь физике на блице!

Код:

Function InitialTriMesh(inmesh%,massa=0)
               
        outmmesh=CreateMesh()
        outsurf=CreateSurface(outmmesh)
        outvc=0
        For sc=1 To CountSurfaces(inmesh)
            insurf=GetSurface(inmesh,sc)
           
            For vc=0 To CountVertices(insurf)-1
                NewV=AddVertex(outsurf,VertexX(insurf,vc),VertexY(insurf,vc),VertexZ(insurf,vc))
            Next
       
            For tc=0 To CountTriangles(insurf)-1
                AddTriangle(outsurf,outvc+TriangleVertex(insurf,tc,0),outvc+TriangleVertex(insurf,tc,1),outvc+TriangleVertex(insurf,tc,2))
            Next
           
            outvc=outvc+CountVertices(insurf)
        Next
        UpdateNormals outmmesh
       
       
       
                nsurf = CountSurfaces(outmmesh )
                nvert = 0
                nface=0
                For ns = 1 To nsurf
                        Local surf = GetSurface(outmmesh ,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(outmmesh,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,massa)
                FreeBank vbank
                FreeBank fbank
                FreeEntity outmmesh
                Return bbb%
End Function


FuguNoo 21.10.2008 18:54

Ответ: проблемы с PhysX
 
спасибо огромное!
работает ГОРАЗДО стабильнее
но при опр обстоятелствах ошибка все равно появляется... в некоторых частях карты....
но это наверно чисто мои какие либо ляпы

огромное спасибо!

FDsagizi 21.10.2008 19:51

Ответ: проблемы с PhysX
 
FuguNoo
Да незашто =)

ABTOMAT 22.10.2008 20:03

Ответ: проблемы с PhysX
 
FDsagizi, респект!
Сам хотел заняться да пока всё стандартной обходился

Isono 22.10.2008 21:40

Ответ: проблемы с PhysX
 
М....Функция.. почему то... допустим на маленькой скорости машина коллюзионирует нормально, а на большой(в меру большой) входит в меш как в пластилин и застревает... код то работал на функции из сэмпла с машинкой))

Function BodyCreateMesh(mesh%)

Может быть масса(500)?

А лучше реально пользоваться двумя мешами)
-одним красивым для графики
-вторым страшным без текстур, для столкновений

FDsagizi 23.10.2008 09:40

Ответ: проблемы с PhysX
 
Isono Зачем тебе лишний геморой + лишние данные + уменьшения скорости загрузки + увелечения расхода памяти
Блиц и так не ахти можщьный, а ты ему еще хочешь добавить груза на плечи!

И проблема не в функции( функция какрас и делает меш бес текстур и текстурных координат... )
Проблема в физиксе, и у тебя не правельно подогнан размер( объекты проваливаються друг в друга если сильно маленькие и тоже самое если сильно большие, подгоняй размеры ! )

Да и с весом тоже может быть, но я юзал у мнея машина весила 1200 и прятижение было около 20, и все было в кайф!


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

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