forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX (http://forum.boolean.name/showthread.php?t=9281)

maxim87 29.09.2009 23:01

подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
пишу это и сам понимаю что хрень:

float* BodyCreateTriMesh(Entity mesh)
{
float* VZ = xGetMeshVB(mesh);
int VZ_size = xGetMeshVBSize(mesh);
int* IZ = xGetMeshIB(mesh);
int IZ_size = xGetMeshIBSize(mesh);
int bbb = pxCreateTriMesh(VZ, IZ, VZ_size, IZ_size, 0);
return bbb;
}
как правильно? заранее спасибо.

maxim87 04.10.2009 22:13

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
int BodyCreateTriMesh(Entity mesh)
{
float *VZ = xGetMeshVB(mesh);
int VZ_size = xGetMeshVBSize(mesh);
int *IZ = xGetMeshIB(mesh);
int IZ_size = xGetMeshIBSize(mesh);
int bbb;
bbb=pxCreateTriMesh(*VZ, *IZ, VZ_size, IZ_size, 0);
return (bbb);
}

при таком коде c++ выдает в этой строке bbb=pxCreateTriMesh(*VZ, *IZ, VZ_size, IZ_size, 0); warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data

maxim87 08.10.2009 22:49

hull и trimesh в C++ + Xors3D + PhysX
 
Скачал другую версию physx wrapper, вот так работает :



int BodyCreateHull(Entity meshh,float mass)
{
float *VB = xGetMeshVB(meshh);
int VB_size = xGetMeshVBSize(meshh);
int vvv;
vvv = pxBodyCreateHull(VB,VB_size,mass);
return vvv;
}

int BodyCreateTriMesh(Entity mesh)
{
float *VZ = xGetMeshVB(mesh);
int VZ_size = xGetMeshVBSize(mesh);
int *IZ = xGetMeshIB(mesh);
int IZ_size = xGetMeshIBSize(mesh);
int bbb=pxCreateTriMesh(VZ, IZ, VZ_size, IZ_size, 0);
return bbb;
}

Comment 05.03.2010 13:07

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
Мучаюсь с тем же вопросом по созданию хула для BLitz3D с++, что за функция:
float *VB = xGetMeshVB(meshh);
int VB_size = xGetMeshVBSize(meshh);
У меня не нашел такое

St_AnGer 05.03.2010 18:37

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
Цитата:

Сообщение от Comment (Сообщение 140642)
Мучаюсь с тем же вопросом по созданию хула для BLitz3D с++, что за функция:
float *VB = xGetMeshVB(meshh);
int VB_size = xGetMeshVBSize(meshh);
У меня не нашел такое

Ещё бы он тебе эти функции нашёл. Они из Xors3d, а не Blitz3d sdk. Для Blitz3d sdk функции создания тримеша и хула будут выглядеть совсем по другому.

Comment 05.03.2010 19:06

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
Цитата:

Сообщение от St_AnGer (Сообщение 140704)
Ещё бы он тебе эти функции нашёл. Они из Xors3d, а не Blitz3d sdk. Для Blitz3d sdk функции создания тримеша и хула будут выглядеть совсем по другому.

Насчет этого я понял, просмотрел хэйдер блитца. Только аналога в блитце я не нашел

St_AnGer 05.03.2010 21:10

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
А аналога этих команд вроде и нету. Например создание тримеша в Blitz3d выглядит примерно так:

Код:

Function pxBodyCreateMesh(mesh%,file_name$)
        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%=pxCreateTriMeshPmap(vbank, fbank, nvert, nface, file_name$, 32)
        FreeBank vbank
        FreeBank fbank
        Return bbb%
End Function

на С++ перевести думаю сам сможешь.

Comment 06.03.2010 18:53

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
Цитата:

Сообщение от St_AnGer (Сообщение 140731)
А аналога этих команд вроде и нету. Например создание тримеша в Blitz3d выглядит примерно так:

Код:

Function pxBodyCreateMesh(mesh%,file_name$)
        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%=pxCreateTriMeshPmap(vbank, fbank, nvert, nface, file_name$, 32)
        FreeBank vbank
        FreeBank fbank
        Return bbb%
End Function

на С++ перевести думаю сам сможешь.

Увы не могу перевести, я понял что с++ знаю очень хреновато...

falcon 07.03.2010 14:11

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
думаешь если переведут за тебя, то ты лучше будешь знать С++?

St_AnGer 07.03.2010 14:31

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
Цитата:

Сообщение от falcon (Сообщение 140958)
думаешь если переведут за тебя, то ты лучше будешь знать С++?

Это факт. Поэтому и не перевожу её ему. Хотя я может и сам не верно переведу, т.к. на С++ совсем недавно перешёл

Comment 07.03.2010 16:05

Ответ: подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX
 
Цитата:

Сообщение от falcon (Сообщение 140958)
думаешь если переведут за тебя, то ты лучше будешь знать С++?

Если я не сделаю эту функцию, то не смогу продолжить работу с phisix, и вообще у меня на этом все встало. С++ мне знать надо получше, но иногда возникает ощущение что те кто знает с++ являются какимита хранителями знаний и они никому эти знания выдавать не хотят. У меня есть уже переведеная функция(http://forum.boolean.name/showthread...838#post140838) но я не могу понять почему она не работает, в С++ много тонкостей и с сам я им занимаюсь буквально немного, вот тема где я еще писал и самое интересное что на всем форуме только две темы по столь важному вопросу и отвечено только по Xors, значит это на столько легкое дело что его сделает почти каждый, или просто никто и не пытался делать.


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

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