Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support LoadMasks for graphics quality adjustments #328

Open
dpogue opened this issue May 8, 2022 · 0 comments
Open

Support LoadMasks for graphics quality adjustments #328

dpogue opened this issue May 8, 2022 · 0 comments
Labels

Comments

@dpogue
Copy link
Member

dpogue commented May 8, 2022

Every Plasma object is tagged with a "LoadMask" that determines what graphics quality setting and shader capabilities it requires. Currently, korman exports all objects with a default LoadMask resulting in them always being loaded.

The most obvious spot in Uru where LoadMasks are used is for Wavesets, which require pixel shaders. Typically there is a flat plane with an animated water texture provided as a fallback for machines that don't meet that capability.

Looking through the PlasmaMax code, it also appears that shadow casters are tagged with LoadMasks indicating at which graphics quality level the shadows should start appearing.

Attaching a LoadMask to a single object to prevent it appearing is reasonably trivial, but often you want to provide a fallback with the inverse of that LoadMask. PlasmaMax handles this with the "Representation Group" component, which allows specifying a bunch of objects with LoadMasks requirements attached, and it will figure out at export time what the actual LoadMask value should be for each object.

This would be a step in the right direction for allowing korman-exported Ages to adapt to graphics settings on machines with lower resources.

@Hoikas Hoikas added the feature label May 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants