Mesh2BB Converter. von ShadowTurtle |
Hallo. Dieses kleine Programm Konvertiert einen Mesh zu einer BlitzBasic (also *.BB) Datei. Man kann das Generierte Mesh dann mit [color=blue:a0422c9493]Mein_Mesh = [/color:a0422c9493][color=red:a0422c9493]CreateMesh_[/color:a0422c9493][color=blue:a0422c9493][Meshname][/color:a0422c9493][color=red:a0422c9493]()[/color:a0422c9493] generieren lassen. Das nächste Feature das (vieleicht) folgen wird, dass bei [color=red:a0422c9493]CreateMesh_[/color:a0422c9493][color=blue:a0422c9493][Meshname][/color:a0422c9493] auch die passente Textur dazu generiert wird. Vieleicht sogar auch mit Animationen. Hier ist nun der Code dazu: [code:1:a0422c9493]Global ModelFile$ = "gluehbirne.3ds" Global BlitzFile$ = "gluehbirne.bb" Global FunctionN$ = "Light" Graphics3D 800,600,16,2 Mesh = LoadMesh(ModelFile$) : If Not Mesh Then RuntimeError ModelFile$ + " not found." MakeFile = WriteFile(BlitzFile$) WriteLine MakeFile, "; Make with Mesh to BlitzBasic code Converter." WriteLine MakeFile, "; Original File: " + ModelFile$ WriteLine MakeFile, "" WriteLine MakeFile, "Function CreateMesh_"+FunctionN$+"()" WriteLine MakeFile, " Mesh = CreateMesh()" For S = 1 To CountSurfaces(Mesh) WriteLine MakeFile, " SurfaceTemp = CreateSurface(Mesh)" Surface = GetSurface(Mesh,S) For KK = 0 To CountVertices(Surface) - 1 X$=Replace$(Str$(VertexX#(Surface,KK)),"e","") Y$=Replace$(Str$(VertexY#(Surface,KK)),"e","") Z$=Replace$(Str$(VertexZ#(Surface,KK)),"e","") U$=Replace$(Str$(VertexU#(Surface,KK)),"e","") V$=Replace$(Str$(VertexV#(Surface,KK)),"e","") W$=Replace$(Str$(VertexW#(Surface,KK)),"e","") NX$=Replace$(Str$(VertexNX#(Surface,KK)),"e","") NY$=Replace$(Str$(VertexNY#(Surface,KK)),"e","") NZ$=Replace$(Str$(VertexNZ#(Surface,KK)),"e","") WriteLine MakeFile, " AddVertex SurfaceTemp,"+X$+","+Y$+","+Z$+","+U$+","+V$+","+W$+":VertexNormal SurfaceTemp,"+KK+","+NX$+","+NY$+","+NZ$ Next UUK$="":LLA=0 For T = 0 To CountTriangles(Surface)-1 TV0$=Replace(Str$(TriangleVertex(Surface,T,0)),"e","") TV1$=Replace(Str$(TriangleVertex(Surface,T,1)),"e","") TV2$=Replace(Str$(TriangleVertex(Surface,T,2)),"e","") UUK$=UUK$+"AddTriangle SurfaceTemp,"+TV0$+","+TV1$+","+TV2$+":" If LLA>CountTriangles(Surface)/50 Then WriteLine MakeFile, " "+UUK$:UUK$="":LLA=0 End If LLA=LLA+1 Next WriteLine MakeFile, " "+Mid$(UUK$,1,Len(UUK$)-1) If Not S=CountSurfaces(Mesh) Then WriteLine MakeFile, "" Next WriteLine MakeFile, " Return Mesh" WriteLine MakeFile, "End Function" CloseFile(MakeFile)[/code:1:a0422c9493] Viel Spaß noch. MfG ShadowTurtle |
von ??? |
aha, dass ist er also. schickes tool, könnt man für gewissen sachen gebrauchen. gut gemacht! :wink: (hehe, du lädst ja mein glühbirnen model *gg) |
von ??? |
Hi. "Manche sachen braucht man einfach". :) MfG ShadowTurtle |