Skip to content

Commit

Permalink
Fix view vector in pbr frag to work in ortho (bevyengine#2370)
Browse files Browse the repository at this point in the history
# Objective

Fixes bevyengine#2369

## Solution

Use the view forward direction for all frags when using ortho view.
  • Loading branch information
aevyrie authored and ostwilkens committed Jul 27, 2021
1 parent 70577ab commit bc1f4a1
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion crates/bevy_pbr/src/render_graph/pbr_pipeline/pbr.frag
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,12 @@ void main() {
emissive.rgb *= texture(sampler2D(StandardMaterial_emissive_texture, StandardMaterial_emissive_texture_sampler), v_Uv).rgb;
# endif

vec3 V = normalize(CameraPos.xyz - v_WorldPosition.xyz);
vec3 V;
if (ViewProj[3][3] != 1.0) { // If the projection is not orthographic
V = normalize(CameraPos.xyz - v_WorldPosition.xyz); // Only valid for a perpective projection
} else {
V = normalize(vec3(-ViewProj[0][2],-ViewProj[1][2],-ViewProj[2][2])); // Ortho view vec
}
// Neubelt and Pettineo 2013, "Crafting a Next-gen Material Pipeline for The Order: 1886"
float NdotV = max(dot(N, V), 1e-4);

Expand Down

0 comments on commit bc1f4a1

Please sign in to comment.