Wavefront obj file format save function
Blitz3D Forums/Blitz3D Programming/Wavefront obj file format save function
| ||
Hi, I'm trying to write a blitz3d function to save a mesh to a .obj wavefront format. I think i have a problem with the tag f into the obj file. Someone can help me please ? Graphics3D 800,600,0,2 SetBuffer BackBuffer() SeedRnd MilliSecs() Global c=CreateCube() SaveToObj( c ) End Function SaveToObj( pMesh ) fileout = WriteFile("mymesh.txt") For i=1 To CountSurfaces( pMesh ) Surface_Handle = GetSurface( pMesh, i ) For j=0 To CountVertices( Surface_Handle ) - 1 vx# = VertexX#(Surface_Handle, j) vy# = VertexY#(Surface_Handle, j) vz# = VertexZ#(Surface_Handle, j) WriteLine( fileout, "v " +vx+ " " + vy + " " + vz ) Next Next For i=1 To CountSurfaces( pMesh ) Surface_Handle = GetSurface( pMesh, i ) For j=0 To CountVertices( Surface_Handle ) - 1 vnx# = VertexNX#(Surface_Handle, j) vny# = VertexNY#(Surface_Handle, j) vnz# = VertexNZ#(Surface_Handle, j) WriteLine( fileout, "vn " +vnx+ " " + vny + " " + vnz ) Next Next For i=1 To CountSurfaces( pMesh ) Surface_Handle = GetSurface( pMesh, i ) For j=0 To CountTriangles( Surface_Handle ) - 1 a = TriangleVertex(Surface_Handle, j,0) b = TriangleVertex(Surface_Handle, j,1) c = TriangleVertex(Surface_Handle, j,2) WriteLine( fileout, "f " +a+ " " + b + " " + c ) Next Next CloseFile( fileout ) End Function |
| ||
Blitz3D numbers the vertices starting from 0. I think .obj expects them to start at 1. |