@ -536,8 +536,8 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
}
}
// Rotate the surface-local normal by the interpolated normal quaternion to convert it to
// Rotate the surface-local normal by the interpolated normal quaternion to convert it to
// eyespace
// eyespace .
out + = " vec3 normal = normalize( quaternion_rotate(normquat, surface_normal) );\n " ;
out + = " vec3 normal = quaternion_rotate(normalize(norm quat) , surface_normal);\n " ;
// Gets the index into the specified lookup table for specular lighting
// Gets the index into the specified lookup table for specular lighting
auto GetLutIndex = [ & lighting ] ( unsigned light_num , LightingRegs : : LightingLutInput input ,
auto GetLutIndex = [ & lighting ] ( unsigned light_num , LightingRegs : : LightingLutInput input ,
@ -1003,7 +1003,9 @@ uniform sampler1D proctex_diff_lut;
// Rotate the vector v by the quaternion q
// Rotate the vector v by the quaternion q
vec3 quaternion_rotate ( vec4 q , vec3 v ) {
vec3 quaternion_rotate ( vec4 q , vec3 v ) {
return v + 2.0 * cross ( q . xyz , cross ( q . xyz , v ) + q . w * v ) ;
return v + 2.0 * cross ( q . xyz , cross ( q . xyz , v ) + q . w * v ) ;
} ) " ;
}
) " ;
if ( config . state . proctex . enable )
if ( config . state . proctex . enable )
AppendProcTexSampler ( out , config ) ;
AppendProcTexSampler ( out , config ) ;