Crate ivy_graphics
source · [−]Expand description
Provides higher level graphics abstractions like meshes, materials, and more. Builds on top of ivy-vulkan.
Modules
Structs
Manage allocation of arbitrary long chunks of memory from an externally backed memory pool.
Represents an animation with a name
Stores animations by name. Attached to an entity by document
A mesh renderer using vkCmdDrawIndirectIndexed and efficient batching.
A query and key are provided. On register, all entites satisfying the
KeyQuery
will be placed into the object buffer. Objects will then be
placed into the correct batch according to their shaderpass and key hash.
This means that if the key is made of a Material and Mesh, all objects with
the same pipeline, material, and mesh will be placed in the same batch.
A batch contains objects of the same shaderpass and material.
Marks the entity as already being batched for this shaderpasss with the batch index and object buffer index.
A camera holds a view and projection matrix. Use a system to update view matrix according to position and rotation.
GPU side camera data
A channel describes a single transform component of a bone
The color attachment of a camera.
The environment data for the built in pbr shader
The depth attachment of a camera.
Manages a certain kind of environment data’s GPU side buffers
Marker for the main camera
A material contains shader properties such as albedo and other parameters. A material does not define the graphics pipeline nor shaders as that is per pass dependent. Note: prefer Materials instead to store several materials.
Represents a vertex and index buffer of mesh::Vertex
mesh.
A mesh renderer using vkCmdDrawIndirectIndexed and efficient batching.
Represents a bundle for anything that can be rendererd into the 3D world.
Note: This bundle is a superset of ivy_base::TransformBundle
and the
transform bundle is thus superflous.
By default, the material is taken from the mesh if available. It is valid
for the material to be null, howver, I no materials exists in mesh the
object won’t be rendererd.
Represents a single typed shaderpass. Each object belonging to the pass is grouped into batches
Represents a part of the mesh with a distincs material.
A mesh renderer using vkCmdDrawIndirectIndexed and efficient batching.
A skinned vertex type with position, normal, texcoord and skinning information.
A simple vertex type with position, normal and texcoord.
Override the pass which is used to draw the renderer
Enums
Traits
Functions
Orthographic projection matrix for use with Vulkan.