H-uru / H-uru/korman

Support LoadMasks for graphics quality adjustments

Open
#328 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
Python
Stars
35
Forks
17
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the PlasmaMax code for LoadMask handling and the Representation Group component described in the issue, then trace how Korman exports objects. Done means exported objects receive appropriate LoadMasks and fallback representations can adapt to graphics capabilities and quality settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
blender, python
Domain
game-dev, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.