mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #2729 from yuriks/quaternion-fix
OpenGL: Improve accuracy of quaternion interpolation
This commit is contained in:
		
						commit
						3df85a103a
					
				@ -535,8 +535,8 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Rotate the surface-local normal by the interpolated normal quaternion to convert it to
 | 
			
		||||
    // eyespace
 | 
			
		||||
    out += "vec3 normal = normalize(quaternion_rotate(normquat, surface_normal));\n";
 | 
			
		||||
    // eyespace.
 | 
			
		||||
    out += "vec3 normal = quaternion_rotate(normalize(normquat), surface_normal);\n";
 | 
			
		||||
 | 
			
		||||
    // Gets the index into the specified lookup table for specular lighting
 | 
			
		||||
    auto GetLutIndex = [&lighting](unsigned light_num, LightingRegs::LightingLutInput input,
 | 
			
		||||
@ -1002,7 +1002,9 @@ uniform sampler1D proctex_diff_lut;
 | 
			
		||||
// Rotate the vector v by the quaternion q
 | 
			
		||||
vec3 quaternion_rotate(vec4 q, vec3 v) {
 | 
			
		||||
    return v + 2.0 * cross(q.xyz, cross(q.xyz, v) + q.w * v);
 | 
			
		||||
})";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
)";
 | 
			
		||||
 | 
			
		||||
    if (config.state.proctex.enable)
 | 
			
		||||
        AppendProcTexSampler(out, config);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user