|
| class | Aabb |
| | Axis-aligned bounding box. More...
|
| class | AabbMaker |
| | AabbMaker implements the logic to fit an Aabb to a collection of points. More...
|
| class | Box |
| | Definition of a box. More...
|
| class | Capsule |
| | Definition of a capsule. More...
|
| class | CollisionFilterDeclaration |
| | Class for articulating changes to the configuration of SceneGraph's "collision filters"; collision filters limit the scope of various proximity queries. More...
|
| class | CollisionFilterManager |
| | Class for configuring "collision filters"; collision filters limit the scope of various proximity queries. More...
|
| class | ContactSurface |
| | The ContactSurface characterizes the intersection of two geometries M and N as a contact surface with a scalar field and a vector field, whose purpose is to support the hydroelastic pressure field contact model as described in: More...
|
| class | Convex |
| | Definition of a convex surface mesh. More...
|
| class | Cylinder |
| | Definition of a cylinder. More...
|
| struct | DefaultProximityProperties |
| | These properties will be used as defaults when the geometry as added via API calls or parsed from model files doesn't say anything more specific. More...
|
| class | DrakeVisualizer |
| | A system that publishes LCM messages representing the current state of a SceneGraph instance (whose QueryObject-valued output port is connected to this system's input port). More...
|
| struct | DrakeVisualizerParams |
| | The set of parameters for configuring DrakeVisualizer. More...
|
| class | DrakeVisualizerTest |
| class | Ellipsoid |
| | Definition of an ellipsoid. More...
|
| struct | EnvironmentMap |
| struct | EquirectangularMap |
| class | GeometryFrame |
| | This simple class carries the definition of a frame used in the SceneGraph. More...
|
| class | GeometryId |
| | Type used to identify geometry instances in SceneGraph. More...
|
| class | GeometryInstance |
| | A geometry instance combines a geometry definition (i.e., a shape of some sort), a pose (relative to a parent "frame" P), material information, and an opaque collection of metadata. More...
|
| class | GeometryProperties |
| | The base class for defining a set of geometry properties. More...
|
| class | GeometrySet |
| | The GeometrySet, as its name implies, is a convenience class for defining a set of geometries. More...
|
| class | GeometryState |
| | The context-dependent state of SceneGraph. More...
|
| class | GeometryVersion |
| | A version numbering class that reports revisions of SceneGraph's geometric data. More...
|
| struct | GltfExtension |
| | Specifies how to deal with glTF "extensions" (non-standard capabilities). More...
|
| class | HalfSpace |
| | Definition of a half space. More...
|
| class | IllustrationProperties |
| | The set of properties for geometry used in an "illustration" role. More...
|
| struct | InMemoryMesh |
| | Representation of a mesh file stored in memory. More...
|
| class | KinematicsVector |
| | A KinematicsVector is a container class used to report kinematics data for registered frames and geometries (keyed by unique FrameId/GeometryId values) to SceneGraph where the set of keys (FrameId/GeometryId) is usually constant and the values (kinematics data) are varying. More...
|
| class | Mesh |
| | Definition of a general (possibly non-convex) mesh. More...
|
| class | Meshcat |
| | Provides an interface to Meshcat (https://github.com/meshcat-dev/meshcat). More...
|
| class | MeshcatAnimation |
| | An interface for recording/playback animations in Meshcat. More...
|
| class | MeshcatCone |
| | Definition of a cone. More...
|
| struct | MeshcatParams |
| | The set of parameters for configuring Meshcat. More...
|
| class | MeshcatPointCloudVisualizer |
| | MeshcatPointCloudVisualizer is a systems::LeafSystem that publishes a perception::PointCloud from its input port to Meshcat. More...
|
| class | MeshcatVisualizer |
| | A system wrapper for Meshcat that publishes the current state of a dynamical diagram with MultibodyPlant and SceneGraph. More...
|
| struct | MeshcatVisualizerParams |
| | The set of parameters for configuring MeshcatVisualizer. More...
|
| struct | MeshcatVisualizerSurfaceVelocityData |
| | Provides MeshcatVisualizer the information it needs to interpret the surface_displacements input port. More...
|
| class | MeshFieldLinear |
| | MeshFieldLinear represents a continuous piecewise-linear scalar field f defined on a (triangular or tetrahedral) mesh; the field value changes linearly within each element E (triangle or tetrahedron), and the gradient ∇f is constant within each element. More...
|
| class | MeshSource |
| | Provides a general abstraction to the definition of a mesh. More...
|
| struct | NullTexture |
| | (Internal use only) A place holder indicating that no texture has been provided for environment map (and, therefore, no environment map). More...
|
| class | Obb |
| class | ObbMaker |
| | ObbMaker performs an algorithm to create an oriented bounding box that fits a specified set of vertices in a mesh. More...
|
| class | ObbMakerTester |
| struct | PenetrationAsPointPair |
| | A characterization of the intersection of two penetrating geometries. More...
|
| class | PerceptionProperties |
| | The set of properties for geometry used in a "perception" role. More...
|
| class | Plane |
| | The definition of a plane in ℜ³, posed in an arbitrary frame. More...
|
| class | PolygonSurfaceMesh |
| | PolygonSurfaceMesh represents a surface comprised of polygonal elements (three or more sides). More...
|
| class | PolygonSurfaceMeshTest |
| struct | promoted_numerical |
| | Given the two scalar types U and T, returns the most "promoted" type. More...
|
| class | ProximityProperties |
| | The set of properties for geometry used in a proximity role. More...
|
| class | QueryObject |
| | The QueryObject serves as a mechanism to perform geometry queries on the world's geometry. More...
|
| struct | RenderEngineGlParams |
| | Construction parameters for RenderEngineGl. More...
|
| struct | RenderEngineGltfClientParams |
| | Construction parameters for the MakeRenderEngineGltfClient() to create a client as part of the glTF Render Client-Server API. More...
|
| struct | RenderEngineVtkParams |
| | Construction parameters for the RenderEngineVtk. More...
|
| class | Rgba |
| | Defines RGBA (red, green, blue, alpha) values on the range [0, 1]. More...
|
| class | SceneGraph |
| | SceneGraph serves as the nexus for all geometry (and geometry-based operations) in a Diagram. More...
|
| struct | SceneGraphConfig |
| | The set of configurable properties on a SceneGraph. More...
|
| class | SceneGraphInspector |
| | The SceneGraphInspector serves as a mechanism to query the topological structure of a SceneGraph instance. More...
|
| class | Shape |
| | The abstract base class for all shape specifications. More...
|
| class | ShapeReifier |
| | The interface for converting shape descriptions to real shapes. More...
|
| struct | SignedDistancePair |
| | The data for reporting the signed distance between two geometries, A and B. More...
|
| struct | SignedDistanceToPoint |
| | The data for reporting the signed distance from a query point to a geometry. More...
|
| class | Sphere |
| | Definition of sphere. More...
|
| struct | SsaoParameter |
| | Screen-space ambient occlusion (SSAO) parameters. More...
|
| class | SurfacePolygon |
| | Representation of a polygonal face in a SurfacePolygon. More...
|
| class | SurfaceTriangle |
| | SurfaceTriangle represents a triangular face in a TriangleSurfaceMesh. More...
|
| class | TriangleSurfaceMesh |
| | TriangleSurfaceMesh represents a union of triangles. More...
|
| class | TriangleSurfaceMeshTester |
| class | VolumeElement |
| | VolumeElement represents a tetrahedral element in a VolumeMesh. More...
|
| class | VolumeMesh |
| | VolumeMesh represents a tetrahedral volume mesh. More...
|
| class | VolumeMeshTester |
|
| std::optional< Obb > | CalcObb (const Shape &shape) |
| | Calculates the oriented bounding box (OBB) for the Shape in its canonical frame.
|
| TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (const std::filesystem::path &filename, const Eigen::Vector3d &scale3, std::function< void(std::string_view)> on_warning={}) |
| | Constructs a surface mesh from a Wavefront .obj file and optionally scales coordinates by the given scale factor.
|
| TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (const std::filesystem::path &filename, double scale=1.0, std::function< void(std::string_view)> on_warning={}) |
| | Variant that allows defining uniform scaling from a single scalar value.
|
| TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (const MeshSource &mesh_source, const Eigen::Vector3d &scale3, std::function< void(std::string_view)> on_warning={}) |
| | Overload of ReadObjToTriangleSurfaceMesh(const std::filesystem::path&,
double) with the Wavefront .obj in a Mesh shape specification.
|
| TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (const MeshSource &mesh_source, double scale=1.0, std::function< void(std::string_view)> on_warning={}) |
| | Variant that allows defining uniform scaling from a single scalar value.
|
| bool | operator== (const VolumeElement &e1, const VolumeElement &e2) |
| bool | operator!= (const VolumeElement &e1, const VolumeElement &e2) |
| VolumeMesh< double > | RefineVolumeMesh (const VolumeMesh< double > &mesh) |
| | Refines a tetrahedral mesh to eliminate problematic simplices.
|
| std::string | RefineVolumeMeshIntoVtkFileContents (const MeshSource &mesh_source) |
| | Refines a tetrahedral mesh to eliminate problematic simplices.
|
| template<class T> |
| TriangleSurfaceMesh< T > | ConvertVolumeToSurfaceMesh (const VolumeMesh< T > &volume) |
| | Converts a tetrahedral volume mesh to a triangulated surface mesh of the boundary surface of the volume.
|
| void | AddContactMaterial (std::optional< double > dissipation, std::optional< double > point_stiffness, const std::optional< multibody::CoulombFriction< double > > &friction, ProximityProperties *properties) |
| | AddContactMaterial() adds general contact material properties to the given set of proximity properties.
|
| void | AddRigidHydroelasticProperties (double resolution_hint, ProximityProperties *properties) |
| | Adds properties to the given set of proximity properties sufficient to cause the associated geometry to generate a rigid hydroelastic representation.
|
| void | AddRigidHydroelasticProperties (ProximityProperties *properties) |
| | Overload, intended for shapes that don't get tessellated in their hydroelastic representation (e.g., HalfSpace and Mesh).
|
| void | AddCompliantHydroelasticProperties (double resolution_hint, double hydroelastic_modulus, ProximityProperties *properties) |
| | Adds properties to the given set of proximity properties sufficient to cause the associated geometry to generate a compliant hydroelastic representation.
|
| void | AddCompliantHydroelasticPropertiesForHalfSpace (double slab_thickness, double hydroelastic_modulus, ProximityProperties *properties) |
| | Compliant half spaces are handled as a special case; they do not get tessellated.
|
| InMemoryMesh | ReadGltfToMemory (const std::filesystem::path &gltf_path) |
| | Given a file path to a .gltf file, loads the .gltf file contents into memory.
|
| std::unique_ptr< render::RenderEngine > | MakeRenderEngineGl (RenderEngineGlParams params={}) |
| | Constructs a RenderEngine implementation which uses a purely OpenGL renderer.
|
| std::unique_ptr< render::RenderEngine > | MakeRenderEngineGltfClient (const RenderEngineGltfClientParams ¶ms) |
| | Constructs a RenderEngine implementation which generates glTF files to upload to a render server, and retrieves renderings from said server by copying image data back into drake systems::sensors::Image buffers.
|
| std::unique_ptr< render::RenderEngine > | MakeRenderEngineVtk (const RenderEngineVtkParams ¶ms) |
| | Constructs a RenderEngine implementation which uses a VTK-based OpenGL renderer.
|
| double | CalcVolume (const Shape &shape) |
| | Calculates the volume (in meters^3) for the Shape.
|
These are simply convenience functions for converting the Role enumeration into a human-readable string.
|
| std::string | to_string (const Role &role) |
A collection of functions to help facilitate working with properties.
|
| IllustrationProperties | MakePhongIllustrationProperties (const Vector4< double > &diffuse) |
| | Constructs an IllustrationProperties instance compatible with a simple "phong" material using only the given diffuse color.
|
Constructs a RenderEngine implementation which uses a purely OpenGL renderer.
The engine only works under Ubuntu. If called on a Mac, it will throw.
- Note
- RenderEngineGl behaves a bit differently from other RenderEngine implementations (e.g., RenderEngineVtk) with respect to displayed images. RenderEngineGl can only display a single image type at a time. So, if show_window has been requested for both label and color images, the images will alternate quickly (flickering) in the shared window.
Using RenderEngineGl in multiple threads
Most importantly, a single RenderEngineGl should not be exercised in multiple threads. One thread, one RenderEngineGl instance.
A RenderEngineGl instance and its clones can be used in different threads simultaneously, but only the rendering APIs are threadsafe. Do not mutate the contents of the engine (e.g., adding/removing geometries, etc.) in parallel.
Two independently constructed RenderEngineGl instances can be freely used in different threads – all APIs are available.
The expected workflow is to add a RenderEngineGl instance a SceneGraph instance (see SceneGraph::AddRenderer()) and then to populate SceneGraph with the desired geometry. Each systems::Context allocated for that SceneGraph will receive a clone of the original RenderEngineGl. One systems::Context can be used per thread to create rendered images in parallel.
- Exceptions
-
| std::exception | if kHasRenderEngineGl is false. |
Constructs a RenderEngine implementation which uses a VTK-based OpenGL renderer.
- Warning
- On macOS, we've observed that RenderEngineVtk sometimes does not obey render::ColorRenderCamera::show_window when it's set to true. Refer to issue #20144 for further discussion.
- Note
- On Ubuntu, render::ColorRenderCamera::show_window only shows a window when RenderEngineVtkParams::backend is set to "GLX"; the default backend value of "EGL" cannot show a window.
Geometry perception properties
This RenderEngine implementation looks for the following properties when registering visual geometry, categorized by rendered image type.
RGB images
| Group name | Property Name | Required | Property Type | Property Description |
| phong | diffuse | no¹ | Eigen::Vector4d | The rgba value of the object surface. |
| phong | diffuse_map | no² | std::string | The path to a texture to apply to the geometry.³⁴ |
¹ If no diffuse value is given, a default rgba value will be applied. The default color is a bright orange. This default value can be changed to a different value at construction.
² If no path is specified, or the file cannot be read, the diffuse rgba value is used (or its default).
³ RenderEngineVtk implements a legacy feature for associating textures with meshes. If no (phong, diffuse_map) property is provided (or it refers to a file that doesn't exist), for a mesh named /path/to/mesh.obj, RenderEngineVtk will search for a file /path/to/mesh.png (replacing "obj" with "png"). If that image exists, it will be used as a texture on the mesh object. ⁴ The render engine consumes pngs with uchar channels. Pngs with a different bit depth, e.g., uint16 channels, will be converted to that.
- Note
- RenderEngineVtk does not support the OBJ format usemtl directive. Instead, it has two ways to associate a color texture with an obj file:
- File name matching; see footnote 3 above.
- Explicit assignment of arbitrary texture files from within model files. In SDFormat, use the tag drake:diffuse_map. In URDF, use //visual/material/texture.
Depth images
No specific properties required.
Label images
| Group name | Property Name | Required | Property Type | Property Description |
| label | id | no⁵ | RenderLabel | The label to render into the image. |
⁵ When the label property is not set, RenderEngineVtk uses a default render label of RenderLabel::kDontCare.
Geometries accepted by RenderEngineVtk
As documented in RenderEngine::RegisterVisual(), a RenderEngine implementation can use the properties found in the PerceptionProperties to determine whether it accepts a shape provided for registration. RenderEngineVtk makes use of defaults to accept all geometries (assuming the properties pass validation, e.g., render label validation).
- Exceptions
-
| std::exception | if kHasRenderEngineVtk is false. |