forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   Проблема с хуломи и тримешами. (http://forum.boolean.name/showthread.php?t=12053)

den 26.02.2010 21:17

Проблема с хуломи и тримешами.
 
Всем привет!:)
У меня возникла проблема с хуломи и тримешами в PhysX Wrapper для Blitz3D. Они просто неработают! Когда я включаю игру, где они есть, блиц выдаёт ошибку:
Цитата:

Memory access violation
В чём проблема?
Функции загрузки хулов и тримешей я брал из примеров учебника.
Для хула:
Код:

Function BodyCreateHull%(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 BodyCreateMesh(mesh%)
        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,0)
        FreeBank vbank
        FreeBank fbank
        Return bbb%
End Function


Dzirt 26.02.2010 21:20

Ответ: Проблема с хуломи и тримешами.
 
неплохо бы еще посмотреть как ты эти самые функции используешь в коде =\

is.SarCasm 26.02.2010 22:01

Ответ: Проблема с хуломи и тримешами.
 
Таже фигня. Ошибка вылетает на :
Цитата:

pxCreateTriMesh(vbank, fbank, nvert, nface,0)
или
Цитата:

pxBodyCreateHull(vbank, nvert, mass)

den 26.02.2010 22:20

Ответ: Проблема с хуломи и тримешами.
 
Так что же делать?:(
Подскажите плиз!:''((
З.Ы.: за правильность кода не переживайте, код я брал из примеров к учебнику товарища АВТОМАТа.:super:

ABTOMAT 26.02.2010 22:41

Ответ: Проблема с хуломи и тримешами.
 
Значит, наверное, количество вершин не то.
Посмотри, загрузилась ли модель, из которой ты делал банки для хуллов/мешей и т.д.
По телефону зубы лечить очень сложно.

.Squid 26.02.2010 23:26

Ответ: Проблема с хуломи и тримешами.
 
Может ты вообще версию для Ксорса используешь?

Randomize 27.02.2010 10:35

Ответ: Проблема с хуломи и тримешами.
 
http://forum.boolean.name/showthread.php?t=12008
Да. Я ведь не зря это писал?

den 27.02.2010 20:29

Ответ: Проблема с хуломи и тримешами.
 
Цитата:

Значит, наверное, количество вершин не то.
Посмотри, загрузилась ли модель, из которой ты делал банки для хуллов/мешей и т.д.
По телефону зубы лечить очень сложно.
Пример я скачал из твоего учебника, следовательно и модели там тоже твои (свои модели тоже неработают)

Цитата:

Может ты вообще версию для Ксорса используешь?
Нет, я использую версию для блица.

Цитата:

http://forum.boolean.name/showthread.php?t=12008
Да. Я ведь не зря это писал?
не помогло, и ктомуже мне надо чтоб физикс работал на чистом блице.

З.Ы.: всё работает ( и магниты, и примитивы, и джоинты, и матерьялы, и компаноиды(из примитивов), и всевозможные лучи силы импульсы, но только не ХУЛЫ и ТРИМЕШЫ!!!

ABTOMAT 27.02.2010 20:32

Ответ: Проблема с хуломи и тримешами.
 
Den
Цитата:

Посмотри, загрузилась ли модель, из которой ты делал банки для хуллов/мешей
Скриншоты дебаггера в студию

den 27.02.2010 20:47

Ответ: Проблема с хуломи и тримешами.
 
Вложений: 1
Вот держи картинку!:)
Вложение 9364

ABTOMAT 27.02.2010 21:19

Ответ: Проблема с хуломи и тримешами.
 
Срава разверни плюсиком дерево и найди там PxB и в нём mesh и body и скажи чему они равны.

den 27.02.2010 21:53

Ответ: Проблема с хуломи и тримешами.
 
mesh=12317992
body=0
Хммм, когда я немного упростил код, дебагер начал показывает ошибку в:

Код:

Function BodyCreateHull%(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

Для тримеша аналогично.
Именно здесь корень проблемы.

Randomize 27.02.2010 21:55

Ответ: Проблема с хуломи и тримешами.
 
Den, информация то где?
Не наезжай преждевременно на меня ок?
1) На какой строчке возникает мав
2) сколько треугольников у твоей модели
3) ты её загрузил как mesh или animmesh
4) Скринами не отделаешься, простейший пример демонстрирующий твою проблему в аттач.

upd. Спасибо, ты уловил суть.
Обнови враппер.
{
1) удали все DLL PhysX`а c компьютера
(Blitzpx.dll, NxCooking.dll, PhysXLoader.dll ищи их в папку Bin или Userlibs твоего Blitz3D)
2) Удали decls файл PhysX
3) Запихни по новой DLL в папку Bin блица и decls файл в Userlibs
4) Убедись в своей версии блица, она должна быть минимум 1.98 в остальных я не так уверен
5) если не поможет то только аттач.
}

den 27.02.2010 22:08

Ответ: Проблема с хуломи и тримешами.
 
Randomize,информация вот.
Так и быть , не буду на тебя наезжать.
1) на ту которую я выделел красным цветом.
Цитата:

pxCreateTriMesh(vbank, fbank, nvert, nface,0)
или
Цитата:

pxBodyCreateHull(vbank, nvert, mass)
2) штук 20
3) как mesh.
4) Повторяю, пример НЕ МОЙ!!! Я его скачал из примеров к учебнику товарища АВТОМАТАа :super: . Просто скачай любой пример из серии:
Цитата:

Хулл, или как сделать физическую модель в 3D Studio max'е
или
Цитата:

Trimesh или физическая модель невыпуклых тел.

Randomize 27.02.2010 22:13

Ответ: Проблема с хуломи и тримешами.
 
Вложений: 1
Мой пост #13 обновлён.
Пожалуйста скажи размеры DLL :
Blitzpx.dll
NxCooking.dll
PhysXLoader.dll
Может проблема в версии.
На всякий случай толькочто потестил и прикладываю свои DLL + Decls.
Они точно работают ;)
Вложение 9365

den 27.02.2010 22:21

Ответ: Проблема с хуломи и тримешами.
 
Кстате, несколько интересных моментов которые я забыл рассказать:
1) у меня работает пример с радголом, а там как я понял используется хулл (правдо както тупо и после создания нескольких радголов сного вылетает МАВ, но главное не сразу!)
2) у меня нету ключика от физикса.
3) момент не по физиксу, но у меня не работае стандартная функция DrawMovie() (экран чёрный, видео нету а звук есть, и игру можно закрыть только через диспетчер задач, короче зависает)
З.Ы.: может быть из-за этих моментов не работает хулл и тримеш???

Randomize 27.02.2010 22:27

Ответ: Проблема с хуломи и тримешами.
 
Обнови блиц.
И обрати внимание, пожалуйста, на остальные мои посты.
Они не раз видоизменились.

den 27.02.2010 22:32

Ответ: Проблема с хуломи и тримешами.
 
Randomize ты мой спаситель!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!
Большое тебе человеческое спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!
Я скачал твой физикс-и он работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!
Цитата:

physx.7z
:) :-) :crazy: :super: :ok:

CRASHER 28.01.2012 16:41

Ответ: Проблема с хуломи и тримешами.
 
Народ, та же проьлема чир и у Denа, только загруженные длл-ки и декалс от Randomizeа не помогают. Как быть? Всё работает, но компиляция встаёт на pxBodyCreateHull() и нивкакую. Прошу помощи!

CRASHER 29.01.2012 19:06

Ответ: Проблема с хуломи и тримешами.
 
Если у кого проблемы с ксорсом и hull'ом физикса, то исправляется так. используете следующую функцию.

Код:

Function BodyCreateHull%(mesh%, mass#)

    Local nsurf = xCountSurfaces(mesh)
    Local nvert = 0
    For ns = 0 To nsurf-1
        Local surf = xGetSurface(mesh,ns)
        nvert = nvert + xCountVertices(surf)
    Next
        vbank = CreateBank(nvert*4*3)
    nv = 0
    For ns = 0 To nsurf-1
        surf = xGetSurface(mesh,ns)
        nvv = xCountVertices(surf)
        For nvc = 0 To nvv - 1
            PokeFloat vbank,nv*12+0,xVertexX(surf,nvc)
            PokeFloat vbank,nv*12+4,xVertexY(surf,nvc)
            PokeFloat vbank,nv*12+8,xVertexZ(surf,nvc)
            nv = nv+1
        Next
    Next

    Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
    FreeBank vbank
    Return bbb
End Function



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

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