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.

Type Definitions