Comments (2)
I was just working on something similar and came up with an updated example so I thought I just paste it here in case anyone needs it in the future, it works in Bevy 0.10.1 using the "order" property on the camera to set the ordering of the two cameras, you also have to set the clear color of the 2d camera so it doesn't clear the screen below:
use bevy::prelude::*;
use bevy_prototype_lyon::prelude::*;
const SHOW_2D: bool = true;
const SHOW_3D: bool = true;
fn main() {
App::new()
.insert_resource(Msaa::Sample4)
.add_plugins(DefaultPlugins)
.add_plugin(ShapePlugin)
.add_startup_system(setup_system)
.run();
}
fn setup_system(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
if SHOW_2D {
let shape = shapes::RegularPolygon {
sides: 6,
feature: shapes::RegularPolygonFeature::Radius(200.0),
..shapes::RegularPolygon::default()
};
commands.spawn(Camera2dBundle {
camera: Camera {
order: 1,
..default()
},
camera_2d: Camera2d {
clear_color: ClearColorConfig::None,
..default()
},
..default()
});
commands.spawn((
ShapeBundle {
path: GeometryBuilder::build_as(&shape),
..default()
},
Fill::color(Color::CYAN),
Stroke::new(Color::BLACK, 10.0),
));
}
if SHOW_3D {
// cube
commands.spawn(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Cube { size: 2.0 })),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
..Default::default()
});
// light
commands.spawn(PointLightBundle {
transform: Transform::from_xyz(4.0, 8.0, 4.0),
..Default::default()
});
// camera
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(-3.0, 3.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
camera: Camera {
order: 0,
..default()
},
..default()
});
}
}
if you don't set the order you get this error in the console:
WARN bevy_render::camera::camera: Camera order ambiguities detected for active cameras with the
following priorities: {(0, Some(Window(NormalizedWindowRef(0v0))))}. To fix this, ensure there is
exactly one Camera entity spawned with a given order for a given RenderTarget. Ambiguities should
be resolved because either (1) multiple active cameras were spawned accidentally, which will result
in rendering multiple instances of the scene or (2) for cases where multiple active cameras is
intentional, ambiguities could result in unpredictable render results.
So this all fixed and working nicely now, thanks all involved in fixing this!
from bevy_prototype_lyon.
Thanks @mattzque. Verified. Closing this.
from bevy_prototype_lyon.
Related Issues (20)
- Can't draw paths or polygons HOT 1
- Using images or materials for shape fill HOT 8
- Rough curves with fixed camera scaling mode HOT 2
- More const support
- Support for rounded polygons HOT 4
- Dyanmic shapes example does not compile HOT 5
- Docs.rs still shows 0.7.2 as latest version HOT 2
- Why aren't `Fill` and `Stroke` housed in `ShapeBundle`? HOT 2
- WebGL: INVALID_OPERATION on entity despawn on wasm target HOT 4
- Changing the Path does not redraw the mesh
- Expected bevy_render::color::Color, found bevy::prelude::Color HOT 2
- How do I use this with UI? HOT 1
- Difference between `ShapePath` and `GeometryBuilder`?
- Apply transformation to individual shape
- Bevy tracking link in README badge is broken HOT 1
- How to draw with Hatching for dashed/dotted lines?
- Way to draw gradient colors
- Apply initial geometry transform HOT 1
- Bevy 0.13 HOT 1
- RegularPolygon into Polygon to access Vertices
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bevy_prototype_lyon.