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 |