mirror of
https://github.com/open-goal/jak-project
synced 2026-09-02 02:02:51 -04:00
[jak2] a few small graphics fixes (#2424)
- better handling of the `disable-fog` settings for merc, should fix the spotlights. There's a setting in the merc effect, and also a runtime flag for the draw-control. I'm not actually sure what reads these, but the draw-control one is definitely used to disable fog on the spotlights. - increase merc draw limit to try to fix the issue about partially drawn citizens in the city - remove useless debug prints (it's okay to die in init, and the medium load buffer size mode is understood now)
This commit is contained in:
@@ -136,7 +136,7 @@ MercCtrl extract_merc_ctrl(const LinkedObjectFile& file,
|
||||
auto tr = typed_ref_from_basic(ref, dts);
|
||||
|
||||
MercCtrl ctrl;
|
||||
ctrl.from_ref(tr, dts); // the merc data import
|
||||
ctrl.from_ref(tr, dts, file.version); // the merc data import
|
||||
return ctrl;
|
||||
}
|
||||
|
||||
@@ -228,7 +228,8 @@ void update_mode_from_alpha1(GsAlpha reg, DrawMode& mode) {
|
||||
DrawMode process_draw_mode(const MercShader& info,
|
||||
bool enable_alpha_test,
|
||||
bool enable_alpha_blend,
|
||||
bool depth_write) {
|
||||
bool depth_write,
|
||||
bool fge) {
|
||||
DrawMode mode;
|
||||
/*
|
||||
* (new 'static 'gs-test
|
||||
@@ -270,6 +271,8 @@ DrawMode process_draw_mode(const MercShader& info,
|
||||
mode.set_clamp_s_enable(info.clamp & 0b1);
|
||||
mode.set_clamp_t_enable(info.clamp & 0b100);
|
||||
|
||||
mode.set_fog(fge);
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
||||
@@ -769,7 +772,8 @@ ConvertedMercEffect convert_merc_effect(const MercEffect& input_effect,
|
||||
}
|
||||
if (input_effect.extra_info.shader) {
|
||||
result.has_envmap = true;
|
||||
result.envmap_mode = process_draw_mode(*input_effect.extra_info.shader, false, false, false);
|
||||
result.envmap_mode =
|
||||
process_draw_mode(*input_effect.extra_info.shader, false, false, false, false);
|
||||
result.envmap_mode.set_ab(true);
|
||||
u32 new_tex = remap_texture(input_effect.extra_info.shader->original_tex, map);
|
||||
ASSERT(result.envmap_mode.get_tcc_enable());
|
||||
@@ -910,8 +914,9 @@ ConvertedMercEffect convert_merc_effect(const MercEffect& input_effect,
|
||||
for (size_t i = 0; i < frag.fp_header.shader_cnt; i++) {
|
||||
const auto& shader = frag.shaders.at(i);
|
||||
// update merc state from shader (will hold over to next fragment, if needed)
|
||||
bool fog = ctrl_header.disable_fog == 0;
|
||||
merc_state.merc_draw_mode.mode =
|
||||
process_draw_mode(shader, result.has_envmap, use_alpha_blend, depth_write);
|
||||
process_draw_mode(shader, result.has_envmap, use_alpha_blend, depth_write, fog);
|
||||
if (!merc_state.merc_draw_mode.mode.get_tcc_enable()) {
|
||||
ASSERT(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user