OpenBRF Redux — A de-rusted, maintained, bug-fixed version of OpenBRF with 64-bit support and dark mode

Users who are viewing this thread

@Swyter when separating frames of vertex anim, it outputs frames like this:
frame5
frame4
frame3
frame2
frame1
frame0
but for correct remerging it needs frames like this:
frame0
frame1
frame2
frame3
frame4
frame5

This means, that we have to reorder them by hand (which can be tedious with 30+ frames).
Could it be changed, so that when it splits into frames, it doesn't output them in reversed order?

Another thing:
When re-merging frames into vertex anim, the new object gets added almost to the very end of the list. Not even the exact end, just some arbitrary position near the end. This is surprising and inconsistent with "Combine meshes" which adds new object somewhere closer to objects being merged.

Speaking of:
When using Combine meshes, it works like this. I merge these:
mesh1
mesh2
mesh3
mesh4
After merging I get:
mesh1
mesh2
mesh3
mesh_combined
mesh4
Which is also kind of a weird behavior, but at least I don't have to scroll all the way down the list to find my mesh.
 
Thanks for the detailed bug report, added it to the backlog! It's probably my Qt double-click selection workaround bitting me back again. Remind me in a few months if I forget about it. :grin:

I'm guessing the Unicode path problems are now solved for you. No news means good news.

Boss, please add a function to rename the .lod's backstamp in batches. Because my computer is not good, I can only use the lod low model. I want to generate the .lod and use its low model. Please, I am from China loves this game very much
Hmm, do you mean running the LOD generation for each mesh in the selection? Are you trying to optimize mods you downloaded? I don't know if this works already.

One thing you can try is renaming the various lod2 to lod1, OpenBRF can do batch renames with common parts already. I'd also try WSE2 and lowering the shader quality. Hope that helps!
 
Last edited:
More updates, I've been overhauling things even more, implementing dark mode, porting it to 64-bit (and the UI library from Qt 5 to 6), improving HiDPI/Retina screen support and making it cross-platform. Download the latest version from here.

ca2e4093-61ea-4b19-8ada-4e043fed9339


  • Improve cross-platform support in the codebase, make it compile and run on Linux out of the box.
    • Remove wide char support for paths when opening files, use UTF-8 everywhere.
    • Fix failing to load the carry_positions.txt on startup on Linux when the locale is non-English, due to how commas are used as separators in other languages like French or Spanish.
  • Make it so that inserted things get added below the selected object and not above, when done for multiple objects caused it to insert backwards.
    • Fixes Separate all frames showing the last frame first on top of the original mesh and the other frames in reverse order after that.
    • Requested by @Dalion and @Erundil.
    • Marco mentions this in the comment, but still does it backwards, there has to be a reason. We'll see. ¯\_(ツ)_/¯
  • Protect against crashes that happened when selecting the last elements of a long BRF and editing the reference data, or when creating at new one in similar circumstances.
  • Port most of the OpenBRF codebase to Qt 6 from Qt 5, use 64-bits versions of things and go from Visual Studio 2017 to 2019. This took a while.
    • Fix vcglib, which is used for the 3D format exp/import. To make it work on modern C++ versions
    • Upgrade the Eigen math library, add a stripped down version of v3.4.0.
  • Completely get rid of my multi-select Qt 5 workaround. No longer needed here.
    • The Qt 6 library authors seemingly fixed the deselect bug. Great!
  • Use the «fusion» theme/Qt style; in Qt 6 this theme will auto-detect system-wide dark mode and change as needed.
  • Improve the 3D view with MSAA x4, and the drawing quality in general:
    • Add multisampling antialiasing, reducing jaggies.
    • Raise the needed version to OpenGL 3.0 and fix the floating probe not working when using MSAA.
    • Use adaptive vsync, so that the framerate is locked only when the graphics card can keep up, if things are slow allow screen tearing, so that we don't get slowdowns.
  • Fix length being written as lenght all over the codebase. Update the translation files manually.
    • Small typo fix: WarBandWarband in the file picker. Update the translation files.
    • Fix a typo in the code: FemininzationFeminization.
  • Fix the view-mode status bar buttons not firing or doing anything on Qt 6 as well as the animation playback controls not showing/hiding/refreshing properly on events.
  • Improve "Retina"-style/4K screen support. Fix the floating probe cursor click position when scaling up the interface.
    • Disable the WindowsArguments = dpiawareness=0 in qt.conf that Marco added.
    • Add a handy explanation of how to disable dark mode instead.
  • Make the list elements appear with light-over-dark colors while the rest of the interface is in dark mode.
    • Keep the original black-on-white colors otherwise.
    • Should improve the color contrast of the scrollbar issues reported by @kraggrim and @heino.
    • Use a light blue for the elements that are being used in the mod and a less dark gray for the unused ones.
 
Last edited:
Cheers for your work 🥳

Btw, would it be better to link directly to the precompiled versions? I think the vast majority of us aren't going to be compiling it.

Also a suggestion for the future would be to make it case sensitive in places where the engine is, to avoid players getting caught out.
 
More updates, now the version and program name actually shows up fine both on Windows and the .exe properties; a problem that has existed forever, I've properly implemented the «Settings > Register BRF extension» menu option functionality, which never did anything and has always bothered me. Plus, the assigned file types now appear as Mount&Blade Binary Resource File. Download the latest version from here.
  • Fix the code that registers OpenBRF as the one that opens files with .brf extension for the current user account.
    • It will automatically detect, register the current OpenBRF instance and path, so that even when not set as default the entry is listed among the compatible options in right-click > Open with....
    • And then tries to assign itself as the default handler even on Windows 10+, where Microsoft makes this very awkward.
  • Fix showing the .exe version information and application name on Windows.
    • Improve said information to automatically set the build date as the public version. Add better metadata.
    • Important so that OpenBRF Redux is correctly displayed in the Open with... dialogs, and other places.
  • 64-bit portability improvements, fix some compiler warnings for saving 64-bit integers into 32-bit variables.
 
Last edited:
Colour with ambient occlusion seems to be broken. This is redux vs old openbrf.
ZD5DT.png

-UElX.png


Edit: Also would be nice to be bale to rotate the camera while the Tune Colours window is open.
 
Last edited:
Interesting, I don't think I've knowingly changed anything of this, but it maybe it was broken during the 64-bit port, or something. I'll take a look when I can and see if previous Redux versions had a working ambient occlusion generator. Haven't even posted the latest changelog here yet. :grin:
 
The color with ambient occlusion operation should now be fixed. Same issue as with the floating probe; it broke when I enabled MSAA to remove jaggies. Turns out the occlusion is detected by looking at the "sky" in the 3D view from every single mesh vertex POV and reading if it's covered or not and just darkening each of them by looking in a few directions and seeing by how much. Just like in an overcast day.

I'll eventually post a full changelog here, but for now you can see that and the other improvements here. The download is at the usual place, see the first page.
 
Last edited:
Back
Top Bottom