From e135ae9ec069dbab74b22ded8a527d33161b33a9 Mon Sep 17 00:00:00 2001 From: Aevyrie Date: Mon, 17 May 2021 01:40:48 -0700 Subject: [PATCH 1/2] Fix ifndef scope to include lights --- crates/bevy_pbr/src/render_graph/pbr_pipeline/pbr.frag | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/bevy_pbr/src/render_graph/pbr_pipeline/pbr.frag b/crates/bevy_pbr/src/render_graph/pbr_pipeline/pbr.frag index 52a005dfe7608..74a6fac6596d8 100644 --- a/crates/bevy_pbr/src/render_graph/pbr_pipeline/pbr.frag +++ b/crates/bevy_pbr/src/render_graph/pbr_pipeline/pbr.frag @@ -283,8 +283,6 @@ vec3 reinhard_extended_luminance(vec3 color, float max_white_l) { return change_luminance(color, l_new); } -#endif - vec3 point_light(PointLight light, float roughness, float NdotV, vec3 N, vec3 V, vec3 R, vec3 F0, vec3 diffuseColor) { vec3 light_to_frag = light.pos.xyz - v_WorldPosition.xyz; float distance_square = dot(light_to_frag, light_to_frag); @@ -349,6 +347,8 @@ vec3 dir_light(DirectionalLight light, float roughness, float NdotV, vec3 normal return (specular + diffuse) * light.color.rgb * NoL; } +#endif + void main() { vec4 output_color = base_color; #ifdef STANDARDMATERIAL_BASE_COLOR_TEXTURE From b86486c99d35213902c4312010d5573d1a0bcaad Mon Sep 17 00:00:00 2001 From: Aevyrie Date: Mon, 17 May 2021 04:05:31 -0700 Subject: [PATCH 2/2] add example to test unlit pbr shader --- examples/3d/pbr.rs | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/examples/3d/pbr.rs b/examples/3d/pbr.rs index f4f99361d4ee3..73c14d2cb43de 100644 --- a/examples/3d/pbr.rs +++ b/examples/3d/pbr.rs @@ -33,20 +33,44 @@ fn setup( roughness: x01, ..Default::default() }), - transform: Transform::from_xyz(x as f32, y as f32, 0.0), + transform: Transform::from_xyz(x as f32, y as f32 + 0.5, 0.0), ..Default::default() }); } } + // unlit sphere + commands.spawn_bundle(PbrBundle { + mesh: meshes.add(Mesh::from(shape::Icosphere { + radius: 0.45, + subdivisions: 32, + })), + material: materials.add(StandardMaterial { + base_color: Color::hex("ffd891").unwrap(), + // vary key PBR parameters on a grid of spheres to show the effect + unlit: true, + ..Default::default() + }), + transform: Transform::from_xyz(-5.0, -2.5, 0.0), + ..Default::default() + }); // light commands.spawn_bundle(PointLightBundle { - transform: Transform::from_translation(Vec3::new(0.0, 5.0, 5.0)), + transform: Transform::from_translation(Vec3::new(50.0, 50.0, 50.0)), + point_light: PointLight { + intensity: 50000., + range: 100., + ..Default::default() + }, ..Default::default() }); // camera - commands.spawn_bundle(PerspectiveCameraBundle { + commands.spawn_bundle(OrthographicCameraBundle { transform: Transform::from_translation(Vec3::new(0.0, 0.0, 8.0)) .looking_at(Vec3::default(), Vec3::Y), - ..Default::default() + orthographic_projection: bevy::render::camera::OrthographicProjection { + scale: 0.01, + ..Default::default() + }, + ..OrthographicCameraBundle::new_3d() }); }