CSGMesh.xml 1.6 KB

123456789101112131415161718192021222324252627
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <class name="CSGMesh" inherits="CSGPrimitive" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
  3. <brief_description>
  4. A CSG Mesh shape that uses a mesh resource.
  5. </brief_description>
  6. <description>
  7. This CSG node allows you to use any mesh resource as a CSG shape, provided it is closed, does not self-intersect, does not contain internal faces and has no edges that connect to more than two faces. See also [CSGPolygon] for drawing 2D extruded polygons to be used as CSG nodes.
  8. [b]Note:[/b] CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a [MeshInstance] with a [PrimitiveMesh]. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
  9. </description>
  10. <tutorials>
  11. <link title="Prototyping levels with CSG">$DOCS_URL/tutorials/3d/csg_tools.html</link>
  12. </tutorials>
  13. <methods>
  14. </methods>
  15. <members>
  16. <member name="material" type="Material" setter="set_material" getter="get_material">
  17. The [Material] used in drawing the CSG shape.
  18. </member>
  19. <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
  20. The [Mesh] resource to use as a CSG shape.
  21. [b]Note:[/b] When using an [ArrayMesh], avoid meshes with vertex normals unless a flat shader is required. By default, CSGMesh will ignore the mesh's vertex normals and use a smooth shader calculated using the faces' normals. If a flat shader is required, ensure that all faces' vertex normals are parallel.
  22. </member>
  23. </members>
  24. <constants>
  25. </constants>
  26. </class>