BoxUtil
Made by ShiozakanaSafe to add mid game, NOT safe to remove from a save IF YOU HAVE MADE A SAVE with it on.
0.98 Ver Download Linkhttps://github.com/MycophobiaSC/BoxUtill_Temp/releases/download/0.98-1.3.5/BoxUtil.-1.3.5.zip0.97 Version Download Linkhttps://github.com/MycophobiaSC/BoxUtill_Temp/releases/tag/0.97BoxUtil is developed based on OpenGL 4.2 and uses various core functions of OpenGL 4.2-4.3
CN sector user manual (In Chinese)https://www.fossic.org/thread-15746-1-1.html Based around Instantiated rendering and GPU calculation, it allows for more efficient rendering option of higher quality, while still being usable on most player's setups.
For Modders - This mod provide various method for static and instance class, and provides parent API class where possible. It provides various simple to use rendering setting and further customization or rewrite methods. Together with several management class to allow for centralized data processing and rendering.
For players- Currently BoxUtil provide two types FXAA anti-aliasing option with different quality and spec requirement, this allows fairly good graphic experience when the base game anti-alising is turned off after using GraphicsLib.
Main Functions
Primary Rendering: org.boxutil.units.standard.entityMain class of BoxUtil, contains main rendering methods of the mod. See org.boxutil.base.api.RenderDataAPI
CommonEntity Mostly allows rendering of 3D Objects in the WaveFrontOBJ format; haves a built in light source but does not include shadows. supports Texture settings.
SpriteEntity Mostly allows flat texture rendering; similar to Sprite API, support Tiles and Texture settings.
CurveEntity Mostly allows for rendering of curved beam effects; supports texture settings.
SegmentEntity Branched version of CurveEntity, with different render and setting methods.
TrailEntity Renders a series of trails or straight lines; supports texture settings.
FlareEntity Renders flash effects; similar to MagicLibs MagicLensFlare.
TextFieldEntity Renders textfield, similar to LazyLibs LazyFont, supports italic, underline, crossout and inversion setings, and supports up to four textfields being rendered together.
DistortionEntity Renders distortions; similar to GraphicsLibs DistortionAPI.
Simple Rendering: org.boxutil.units.standard.miscFunctions similar to the base game, the rendering classes that require VAO supports require OpenGL 3.1, rest requires only OpenGL 2.0; Helper functions for VAOs can be found under org.boxutil.base.api.SimpleVAOAPI
ArcObject Renders curves/fans/elipses at any location.
AtlasSprite SpriteAPI that saves Vram, implements vanilla SpriteAPI class. Usually used to replaced default ship sprites.
CurveObject Curve rendering that is compatible with lower OpenGL versions, supports basic texture/color settings.
TexArcObject Renders textured curves/fans/elipses at any location.
NumberObject Renders integer/float numbers at any location.
UIBorderObject Renders vanilla style UI at any location.
PointObject Renders a point object (requires VAO support).
PublicFBO a public FBO that is not used by BoxUtil, used to prevent duplicate FBOs by various mods; can call ShaderCore to obtain an instance. A null check should be ran first before advance.
LineObject Renders a line object (requires VAO support).
QuadObject Renders a quad object (requires VAO support).
Resource Manager: org.boxutil.managerManages various resources for centralized rendering.
CampaignRenderingManager: Manage campaign map rendering.
CombatRenderingManager: Manage combat rendering.
ModelManager: Load WaveFrontOBJ 3D model and save them.
ShaderCore: Save BoxUtil shader programs and other similar OpenGL objects.
Utility Tools: org.boxutil.utilProvides easy ways to implement specific OpenGL related functionalities.
CalculateUtil: Functions to easily calculate data, such as vectors.
CommonUtil: Common rendering methods and other ungrouped methods.
CurveUtil: Methods for curve related math and simple curved beam generation.
RenderingUtil: Helper functions for creation of render entities.
ShaderUtil: Methods for cration of shader programs and other OpenGL related operations.
TransformUtil: Matrix creation and calculation, mostly used for position/facing/resizing of main render entities.
TrigUtil: Some trig calculation methods.
Notes
To use most of the functionalitises ofBoxUtil, you must have a graphics card that support OpenGL 4.2 . Calculating data of Instantiated rendering on GPU will require at least OpenGL 4.3 support.
You can check the support of your graphics card using softwares like GPU-Z. For MacOS, you most likely cant use OpenGL functionalities of higher versions.
If you want to change games UI zoom, please try to change them in increments of 50%.
NotesFor most function of BoxUtil, you must have a graphic card that support OpenGL 4.2 calculating data of Instantiated rendering on GPU will require at least OpenGL 4.3 support.
You can check your graphic cards using softwares like GPU-Z. For MacOS, most likely they would not be able to use OpenGL function of higher version.
If you would need to change game UI zoom, please try to change them in increments of 50%.
SettingsThe mod comes its own config panel on the bottom left, which include two icons, the left one governs basic functions and the right one governs OpenGL4.3 functions.
Normally, if the icon is green, it is usable, if it is red, it is not operational. Clicking them opens a setting panel.
Global setting option requires a full restart of the game to function, rest should work after saving the changes. If a setting is red, it is not functional given your current spec.
TL NoteUnfortunately for a dedicated lib like this, most of the more complex function are too complicated for me to understand, let alone translate, so most detailed function explanation may have some mistakes. I have tried my best to outline the main points of the original post, and an english Java doc is enclosed that could help. However, if anyone can provide a better overview, I'd greatly appreciate it.
UpdatesSpoiler
Ver 1.3.5
See github for log
Ver 1.3.4
See Github for log
Ver 1.3.3
Incorpated earlier CN update 1.3.0-1.3.3, see github for log
Ver 1.2.3
Adjusted AtlasSprite for 0.98a_RC7
Added Public FBO ShaderCore
Added following new methods:
PublicFBO getPublicFBO();
boolean isPublicFBOValid();
void refreshPublicFBO();