mirror of
https://github.com/open-goal/jak-project
synced 2026-08-11 11:33:51 -04:00
Add hfrag, clean up some background renderer stuff (#3509)
This adds hfrag, but with a few remaining issues: - The textures aren't animated. Instead, it just uses one texture. - The texture filtering isn't as good as at it could be. I also cleaned up a few issues with the background renderers: - Cleaned up some stuff that is common to hfrag, tie, tfrag, shrub - Moved time-of-day color packing stuff to FR3 creation, rather than at level load. This appears to reduce the frame time spikes when a level is first drawn by about 5 or 6 ms in big levels. - Cleaned up the x86 specific stuff used in time of day. Now there's only one place where we have an `ifdef`, rather than spreading it all over the rendering code.
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "decompiler/level_extractor/BspHeader.h"
|
||||
#include "decompiler/level_extractor/extract_actors.h"
|
||||
#include "decompiler/level_extractor/extract_collide_frags.h"
|
||||
#include "decompiler/level_extractor/extract_hfrag.h"
|
||||
#include "decompiler/level_extractor/extract_joint_group.h"
|
||||
#include "decompiler/level_extractor/extract_merc.h"
|
||||
#include "decompiler/level_extractor/extract_shrub.h"
|
||||
@@ -150,9 +151,8 @@ std::vector<level_tools::TextureRemap> extract_tex_remap(const ObjectFileDB& db,
|
||||
bool ok = is_valid_bsp(bsp_file.linked_data);
|
||||
ASSERT(ok);
|
||||
|
||||
level_tools::DrawStats draw_stats;
|
||||
level_tools::BspHeader bsp_header;
|
||||
bsp_header.read_from_file(bsp_file.linked_data, db.dts, &draw_stats, db.version(), true);
|
||||
bsp_header.read_from_file(bsp_file.linked_data, db.dts, db.version(), true);
|
||||
|
||||
return bsp_header.texture_remap_table;
|
||||
}
|
||||
@@ -174,10 +174,8 @@ level_tools::BspHeader extract_bsp_from_level(const ObjectFileDB& db,
|
||||
bool ok = is_valid_bsp(bsp_file.linked_data);
|
||||
ASSERT(ok);
|
||||
|
||||
level_tools::DrawStats draw_stats;
|
||||
// draw_stats.debug_print_dma_data = true;
|
||||
level_tools::BspHeader bsp_header;
|
||||
bsp_header.read_from_file(bsp_file.linked_data, db.dts, &draw_stats, db.version());
|
||||
bsp_header.read_from_file(bsp_file.linked_data, db.dts, db.version());
|
||||
ASSERT((int)bsp_header.drawable_tree_array.trees.size() == bsp_header.drawable_tree_array.length);
|
||||
|
||||
// grrr.....
|
||||
@@ -257,6 +255,9 @@ level_tools::BspHeader extract_bsp_from_level(const ObjectFileDB& db,
|
||||
extract_collide_frags(bsp_header.collide_hash, all_ties, config,
|
||||
fmt::format("{}-{}-collide", dgo_name, i++), db.dts, level_data);
|
||||
}
|
||||
if (bsp_header.hfrag) {
|
||||
extract_hfrag(bsp_header, tex_db, &level_data);
|
||||
}
|
||||
level_data.level_name = bsp_header.name;
|
||||
|
||||
return bsp_header;
|
||||
|
||||
Reference in New Issue
Block a user