Skip to content

Headless rendering plugin for the Bevy game engine

License

0BSD and 2 other licenses found

Licenses found

0BSD
LICENSE-0BSD
Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

soaosdev/bevy_headless_render

bevy_headless_render

Crates License Tag Docs

A plugin for the Bevy engine which allows for headless rendering.

Every frame will be copied from HeadlessRenderSource render textures into HeadlessRenderDestination images each frame.

Compatibility

Crate Version Bevy Version
0.1 0.14
0.2 0.15

Installation

crates.io

[dependencies]
bevy_headless_render = "0.2"

Using git URL in Cargo.toml

[dependencies.bevy_headless_render]
git = "https://git.exvacuum.dev/bevy_headless_render"

Usage

In main.rs:

use bevy::prelude::*;
use bevy_headless_render;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins
            bevy_headless_render::HeadlessRenderPlugin,
        ))
        .run();
}

When spawning a camera:

let size = Extent3d {
    width: 640,
    height: 480,
    depth_or_array_layers: 1,
};

let mut image = Image {
    texture_descriptor: TextureDescriptor {
        label: None,
        size,
        dimension: TextureDimension::D2,
        format: TextureFormat::Rgba8UnormSrgb,
        mip_level_count: 1,
        sample_count: 1,
        usage: TextureUsages::TEXTURE_BINDING
            | TextureUsages::COPY_SRC
            | TextureUsages::RENDER_ATTACHMENT,
        view_formats: &[],
    },
    ..default()
};

image.resize(size);

let image_handle = asset_server.add(image);

commands.spawn((
    HeadlessRenderSource::new(&asset_server, image_handle.clone()),
    Camera3d::default(),
    Camera {
        target: image_handle.into(),
        ..Default::default()
    },
));

The HeadlessRenderDestination component will contain the extracted image which can be used or saved for whatever you need.

License

This crate is licensed under your choice of 0BSD, Apache-2.0, or MIT license.

About

Headless rendering plugin for the Bevy game engine

Resources

License

0BSD and 2 other licenses found

Licenses found

0BSD
LICENSE-0BSD
Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages