CreateCube???
Blitz3D Forums/Blitz3D Programming/CreateCube???
| ||
| Hi is CreateCube doing something cleverer than creating a single mesh, single surface with 12 tris on it? The reason I ask is if I create my own cube using... m=CreateMesh() ;front face b=LoadBrush(".\gfx\" + "wall.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0 AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 ;right face AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0 AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 ;back face AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0 AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 ;left face AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0 AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 ;bottom face AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0 AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 ;top face AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1 AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b Return m ...and use copyentity to create a load of them, then I get a few FPS, however if I use createcube and then copyentity my FPS in more than double. WHY IS THIS? |
| ||
I'm not sure why it slows down the rendering, but your mesh construction isn't correct. Try this, and see if it still slows the fps down:brush = LoadBrush(".\gfx\" + "wall.jpg",49 )
cube = CreateMyCube(brush)
Function CreateMyCube(brush=0,parent=0)
; Prepare the mesh
mesh = CreateMesh(parent)
surf = CreateSurface(mesh,brush)
;front face
v0 = AddVertex(surf,-1,+1,-1,0,0)
v1 = AddVertex(surf,+1,+1,-1,1,0)
v2 = AddVertex(surf,+1,-1,-1,1,1)
v3 = AddVertex(surf,-1,-1,-1,0,1)
AddTriangle surf,v0,v1,v2
AddTriangle surf,v0,v2,v3
;right face
v0 = AddVertex(surf,+1,+1,-1,0,0)
v1 = AddVertex(surf,+1,+1,+1,1,0)
v2 = AddVertex(surf,+1,-1,+1,1,1)
v3 = AddVertex(surf,+1,-1,-1,0,1)
AddTriangle surf,v0,v1,v2
AddTriangle surf,v0,v2,v3
;back face
v0 = AddVertex(surf,+1,+1,+1,0,0)
v1 = AddVertex(surf,-1,+1,+1,1,0)
v2 = AddVertex(surf,-1,-1,+1,1,1)
v3 = AddVertex(surf,+1,-1,+1,0,1)
AddTriangle surf,v0,v1,v2
AddTriangle surf,v0,v2,v3
;left face
v0 = AddVertex(surf,-1,+1,+1,0,0)
v1 = AddVertex(surf,-1,+1,-1,1,0)
v2 = AddVertex(surf,-1,-1,-1,1,1)
v3 = AddVertex(surf,-1,-1,+1,0,1)
AddTriangle surf,v0,v1,v2
AddTriangle surf,v0,v2,v3
;bottom face
v0 = AddVertex(surf,-1,+1,+1,0,1)
v1 = AddVertex(surf,+1,+1,+1,0,0)
v2 = AddVertex(surf,+1,+1,-1,1,0)
v3 = AddVertex(surf,-1,+1,-1,1,1)
AddTriangle surf,v0,v1,v2
AddTriangle surf,v0,v2,v3
;top face
v0 = AddVertex(surf,-1,-1,-1,1,0)
v1 = AddVertex(surf,+1,-1,-1,1,1)
v2 = AddVertex(surf,+1,-1,+1,0,1)
v3 = AddVertex(surf,-1,-1,+1,0,0)
AddTriangle surf,v0,v1,v2
AddTriangle surf,v0,v2,v3
Return mesh
End Function |