Показать сообщение отдельно
Старый 12.07.2009, 03:35   #1
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
TriMesh - создание.

//перенесите темы в 3д плиз. ) ошибься)

В общем, запутался с физиксом.
Стоит такая задача:

Я создаю прямо в игре меш - то есть ни откуда не загружаю, именно в игре создаю.

Проблема такая - как заменить функцию 3dmax - ResetXForm - в ксорсе под бмаксом и почему функция по поводу создания тримеша не работает - заикается на именно самом создании :

Function BodyCreateMesh:Int(mesh:Int)
Local nsurf:Int = xCountSurfaces(mesh)
Local nvert:Int = 0
Local nface:Int = 0
For Local ns:Int = 0 To nsurf-1
Local surf:Int = xGetSurface(mesh, ns)
nface:Int = nface + xCountTriangles(surf)
nvert:Int = nvert + xCountVertices(surf)
Next

Local fbank:TBank = CreateBank(nface * 4 * 3)
Local nf:Int = 0
Local vbank:TBank = CreateBank(nvert * 4 * 3)
Local nv:Int = 0
For Local ns:Int = 0 To nsurf-1
Local surf:Int = xGetSurface(mesh, ns)
Local nfv:Int = xCountTriangles(surf)
For Local nfc:Int = 0 To nfv - 1
PokeInt fbank, nf * 12 + 0, xTriangleVertex(surf, nfc, 0)
PokeInt fbank, nf * 12 + 4, xTriangleVertex(surf, nfc, 1)
PokeInt fbank, nf * 12 + 8, xTriangleVertex(surf, nfc, 2)
nf=nf+1
Next

Local nvv:Int = xCountVertices(surf)
For Local nvc:Int = 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:Int = pxCreateTriMesh(vbank, fbank, nvert, nface, 0)
vbank = Null
fbank = Null
Return bbb%
End Function
Кто-нибудь знает? Я с физиксом мало знаком, да и с ксорсом тоже)...

Последний раз редактировалось Данил, 12.07.2009 в 13:37.
(Offline)
 
Ответить с цитированием