🗿 mesh - 3D Mesh İşleme
Load OBJ/STL, Primitives, Subdivision, Decimation
68
Fonksiyon
891
Satır
28 KB
Boyut
🚀 Hızlı Başlangıç
içe_aktar mesh
// Load mesh
değişken model = mesh.load_obj("model.obj")
// Primitives
değişken cube = mesh.cube(1.0)
değişken sphere = mesh.sphere(0.5, 32, 32)
değişken cylinder = mesh.cylinder(0.5, 2.0, 32)
// Transform
mesh.translate(cube, [1.0, 0.0, 0.0])
mesh.rotate(cube, [0.0, 1.0, 0.0], 45.0)
mesh.scale(cube, [2.0, 1.0, 1.0])
// Normals
mesh.compute_normals(model)
// Save
mesh.save_obj(model, "output.obj")
📚 Operations
- Load/Save (OBJ, STL, PLY)
- Primitives (cube, sphere, cylinder, cone, torus)
- Subdivision (Catmull-Clark, Loop)
- Decimation (mesh simplification)
- Boolean operations (union, intersection, difference)
💡 Örnekler
Procedural Mesh Generator
içe_aktar mesh, math
fonksiyon terrain_generate(width: tamsayı, height: tamsayı) -> Mesh yap
değişken m = mesh.new()
// Generate vertices
her y içinde aralık(0, height) için yap
her x içinde aralık(0, width) için yap
değişken z = math.sin(x.kesir() * 0.1) * math.cos(y.kesir() * 0.1) * 5.0
mesh.add_vertex(m, [x.kesir(), z, y.kesir()])
son
son
// Generate faces
her y içinde aralık(0, height-1) için yap
her x içinde aralık(0, width-1) için yap
değişken i0 = y * width + x
değişken i1 = i0 + 1
değişken i2 = (y + 1) * width + x
değişken i3 = i2 + 1
mesh.add_triangle(m, i0, i1, i2)
mesh.add_triangle(m, i1, i3, i2)
son
son
mesh.compute_normals(m)
dön m
son
değişken terrain = terrain_generate(100, 100)
mesh.save_obj(terrain, "terrain.obj")