mandelbulb
This commit is contained in:
parent
2598c9420e
commit
fabfefbf50
2 changed files with 66 additions and 27 deletions
16
src/main.rs
16
src/main.rs
|
|
@ -30,6 +30,9 @@ fn setup(
|
|||
mesh_translation: transform.translation,
|
||||
sphere_radius: 1.0,
|
||||
color: Vec4::default(),
|
||||
model_inverse: transform.compute_matrix().inverse(),
|
||||
power: 8.0,
|
||||
iterations: 32,
|
||||
}));
|
||||
|
||||
commands.spawn((
|
||||
|
|
@ -49,6 +52,7 @@ fn setup(
|
|||
commands.spawn((
|
||||
DirectionalLight::default(),
|
||||
Transform::from_xyz(1.0, 1.0, 1.0).looking_at(Vec3::ZERO, Vec3::Y),
|
||||
Rotate,
|
||||
));
|
||||
|
||||
commands.spawn((
|
||||
|
|
@ -67,14 +71,12 @@ fn rotate_things(mut q: Query<&mut Transform, With<Rotate>>, time: Res<Time>) {
|
|||
}
|
||||
|
||||
fn update_volu_material(
|
||||
mut q: Query<(&mut Transform, &MeshMaterial3d<VoluMaterial>), Changed<Transform>>,
|
||||
q: Query<(&Transform, &MeshMaterial3d<VoluMaterial>), Changed<Transform>>,
|
||||
mut volu_materials: ResMut<Assets<VoluMaterial>>,
|
||||
mut buffers: ResMut<Assets<ShaderStorageBuffer>>,
|
||||
time: Res<Time>,
|
||||
) {
|
||||
for (mut transform, material) in q.iter_mut() {
|
||||
transform.translation.y = time.elapsed_secs().sin();
|
||||
|
||||
for (transform, material) in q.iter() {
|
||||
let volu_material = volu_materials.get_mut(material.0.id()).unwrap();
|
||||
|
||||
let buffer = buffers
|
||||
|
|
@ -87,6 +89,9 @@ fn update_volu_material(
|
|||
mesh_translation: transform.translation,
|
||||
sphere_radius: (elapsed.sin() + 3.) / 4.,
|
||||
color: vec4((elapsed.sin() + 1.) / 2., 0.0, 0.0, 1.0),
|
||||
model_inverse: transform.compute_matrix(),
|
||||
power: 8.0,
|
||||
iterations: 32,
|
||||
};
|
||||
|
||||
buffer.set_data(volu_storage);
|
||||
|
|
@ -110,4 +115,7 @@ pub struct VoluStorage {
|
|||
mesh_translation: Vec3,
|
||||
sphere_radius: f32,
|
||||
color: Vec4,
|
||||
model_inverse: Mat4,
|
||||
power: f32,
|
||||
iterations: i32,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue