From 18d65673af0cb6b0466519f4fc625545110126aa Mon Sep 17 00:00:00 2001 From: HaSa1002 Date: Sat, 31 Oct 2020 20:39:24 +0100 Subject: [PATCH] Docs: MeshDataTool: showcase tool in code example (cherry picked from commit 4f9b993423e803bfda965bb5dcd5dcc00f2f3395) --- doc/classes/MeshDataTool.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml index 379b50c9046..3eb4a8f6403 100644 --- a/doc/classes/MeshDataTool.xml +++ b/doc/classes/MeshDataTool.xml @@ -8,14 +8,21 @@ To use MeshDataTool, load a mesh with [method create_from_surface]. When you are finished editing the data commit the data to a mesh with [method commit_to_surface]. Below is an example of how MeshDataTool may be used. [codeblock] + var mesh = ArrayMesh.new() + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, CubeMesh.new().get_mesh_arrays()) var mdt = MeshDataTool.new() mdt.create_from_surface(mesh, 0) for i in range(mdt.get_vertex_count()): var vertex = mdt.get_vertex(i) - ... + # In this example we extend the mesh by one unit, which results in seperated faces as it is flat shaded. + vertex += mdt.get_vertex_normal(i) + # Save your change. mdt.set_vertex(i, vertex) mesh.surface_remove(0) mdt.commit_to_surface(mesh) + var mi = MeshInstance.new() + mi.mesh = mesh + add_child(mi) [/codeblock] See also [ArrayMesh], [ImmediateGeometry] and [SurfaceTool] for procedural geometry generation. [b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.