Показать сообщение отдельно
Старый 26.02.2010, 21:17   #1
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Печаль Проблема с хуломи и тримешами.

Всем привет!
У меня возникла проблема с хуломи и тримешами в 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
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
is.SarCasm (26.02.2010)