gl_shader_gen: Add support for D0 LUT scaling.
This commit is contained in:
parent
3d89dacd56
commit
781b046579
3 changed files with 71 additions and 3 deletions
|
@ -90,6 +90,7 @@ struct PicaShaderConfig {
|
|||
res.lighting.lut_d0.enable = regs.lighting.lut_enable_d0 == 0;
|
||||
res.lighting.lut_d0.abs_input = regs.lighting.abs_lut_input.d0 == 0;
|
||||
res.lighting.lut_d0.type = (Pica::Regs::LightingLutInput)regs.lighting.lut_input.d0.Value();
|
||||
res.lighting.lut_d0.scale = regs.lighting.lut_scale.GetScale(regs.lighting.lut_scale.d0);
|
||||
res.lighting.clamp_highlights = regs.lighting.clamp_highlights != 0;
|
||||
|
||||
return res;
|
||||
|
@ -130,7 +131,8 @@ struct PicaShaderConfig {
|
|||
bool enable = false;
|
||||
bool abs_input = false;
|
||||
Pica::Regs::LightingLutInput type = Pica::Regs::LightingLutInput::NH;
|
||||
} lut_d0;
|
||||
float scale = 1.0f;
|
||||
} lut_d0, lut_d1, lut_fr;
|
||||
} lighting;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -412,7 +412,7 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
|
|||
std::string d0_lut_value = "1.0";
|
||||
if (config.lighting.lut_d0.enable) {
|
||||
std::string d0_lut_index = GetLutIndex(light_config.num, config.lighting.lut_d0.type, config.lighting.lut_d0.abs_input);
|
||||
d0_lut_value = GetLutValue(Regs::LightingSampler::Distribution0, d0_lut_index);
|
||||
d0_lut_value = "(" + std::to_string(config.lighting.lut_d0.scale) + " * " + GetLutValue(Regs::LightingSampler::Distribution0, d0_lut_index) + ")";
|
||||
}
|
||||
|
||||
// Compute secondary fragment color (specular lighting) function
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue