aurora: disable backface culling, making it more visible from the inside

This commit is contained in:
yuni 2024-11-26 23:57:01 +01:00
parent 03e96e6ecd
commit dbfe4a7790
2 changed files with 30 additions and 8 deletions

View file

@ -1277,7 +1277,9 @@ fn spawn_entities(
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
mut materials_jupiter: ResMut<Assets<load::JupitersRing>>,
mut materials_aurora: ResMut<Assets<load::JupitersAurora>>,
mut materials_aurora: ResMut<
Assets<bevy::pbr::ExtendedMaterial<StandardMaterial, load::JupitersAurora>>,
>,
mut id2pos: ResMut<game::Id2Pos>,
mut achievement_tracker: ResMut<var::AchievementTracker>,
mut ew_updateavatar: EventWriter<hud::UpdateAvatarEvent>,
@ -1667,9 +1669,7 @@ fn spawn_entities(
world::DespawnOnPlayerDeath,
MaterialMeshBundle {
mesh: meshes.add(Sphere::new(radius).mesh().uv(128, 128)),
material: materials_aurora.add(load::JupitersAurora {
alpha_mode: AlphaMode::Blend,
}),
material: materials_aurora.add(load::JupitersAurora::material()),
transform: Transform::from_translation(absolute_pos.as_vec3()),
..default()
},

View file

@ -19,7 +19,9 @@ pub struct LoadPlugin;
impl Plugin for LoadPlugin {
fn build(&self, app: &mut App) {
app.add_plugins(MaterialPlugin::<JupitersRing>::default());
app.add_plugins(MaterialPlugin::<JupitersAurora>::default());
app.add_plugins(MaterialPlugin::<
ExtendedMaterial<StandardMaterial, JupitersAurora>,
>::default());
app.add_plugins(MaterialPlugin::<SkyBox>::default());
app.add_plugins(MaterialPlugin::<
ExtendedMaterial<StandardMaterial, AsteroidSurface>,
@ -117,12 +119,32 @@ pub struct JupitersAurora {
pub alpha_mode: AlphaMode,
}
impl Material for JupitersAurora {
impl MaterialExtension for JupitersAurora {
fn fragment_shader() -> ShaderRef {
"shaders/aurora.wgsl".into()
}
fn alpha_mode(&self) -> AlphaMode {
self.alpha_mode
}
impl Default for JupitersAurora {
fn default() -> Self {
Self {
alpha_mode: AlphaMode::default(),
}
}
}
impl JupitersAurora {
pub fn material() -> ExtendedMaterial<StandardMaterial, JupitersAurora> {
ExtendedMaterial {
base: StandardMaterial {
perceptual_roughness: 1.0,
alpha_mode: AlphaMode::Blend,
opaque_render_method: OpaqueRendererMethod::Auto,
cull_mode: None,
..default()
},
extension: Self::default(),
}
}
}