I'm working on a subdivide function that comes along with one of the examples with b3d.
Does anybody know how to fix the function so that both sides of my cube look the same (like the left side)?
Press space to divide. Any help much appreciated :)
Does anybody know how to fix the function so that both sides of my cube look the same (like the left side)?
Press space to divide. Any help much appreciated :)
Graphics3D 650,480,15,2 SetBuffer BackBuffer() cam=CreateCamera() light=CreateLight() cube=CreateCube() MoveEntity cam,0,0,-5 PointEntity cam,cube WireFrame True While Not KeyDown (1) Cls If KeyHit (57) Then cube = Divide (cube) UpdateWorld RenderWorld Flip Wend End Function Divide (Mesh) Local NewMesh,Surface,NewSurface,Count,CountB,A,X1#,Y1#,Z1#,X2#,Y2#,Z2#,X3#,Y3#,Z3#,X4#,Y4#,Z4#,X5#,Y5#,Z5#,X6#,Y6#,Z6# NewMesh = CreateMesh() Surface = CreateSurface (NewMesh) NewSurface = GetSurface (Mesh,CountSurfaces(Mesh)) Count = CountTriangles (NewSurface) For A = 0 To Count-1 X1# = VertexX (NewSurface,TriangleVertex(NewSurface,A,0)) Y1# = VertexY (NewSurface,TriangleVertex(NewSurface,A,0)) Z1# = VertexZ (NewSurface,TriangleVertex(NewSurface,A,0)) X2# = VertexX (NewSurface,TriangleVertex(NewSurface,A,1)) Y2# = VertexY (NewSurface,TriangleVertex(NewSurface,A,1)) Z2# = VertexZ (NewSurface,TriangleVertex(NewSurface,A,1)) X3# = VertexX (NewSurface,TriangleVertex(NewSurface,A,2)) Y3# = VertexY (NewSurface,TriangleVertex(NewSurface,A,2)) Z3# = VertexZ (NewSurface,TriangleVertex(NewSurface,A,2)) X4# = (X1+X2)/2 Y4# = (Y1+Y2)/2 Z4# = (Z1+Z2)/2 X5# = (X2+X3)/2 Y5# = (Y2+Y3)/2 Z5# = (Z2+Z3)/2 X6# = (X3+X1)/2 Y6# = (Y3+Y1)/2 Z6# = (Z3+Z1)/2 AddVertex (Surface,X1,Y1,Z1) AddVertex (Surface,X2,Y2,Z2) AddVertex (Surface,X3,Y3,Z3) AddVertex (Surface,X4,Y4,Z4) AddVertex (Surface,X5,Y5,Z5) AddVertex (Surface,X6,Y6,Z6) AddTriangle (Surface,CountB+0,CountB+3,CountB+5) AddTriangle (Surface,CountB+1,CountB+4,CountB+3) AddTriangle (Surface,CountB+2,CountB+5,CountB+3) AddTriangle (Surface,CountB+3,CountB+4,CountB+2) CountB = CountB + 6 Next UpdateNormals NewMesh FreeEntity Mesh Return NewMesh End Function