From Dean Hall, playing around with navball config:

This new system allows you to write fragment shaders to “draw” widgets on the screen. All you need to do is write it in XML:

        <Gauge>
            <Component Id="Navball">
                <AnchorUv X="0" Y="1" />
                <PivotUv X="0.5" Y="0.5" />
                <SizePixels X="256" Y="256" />
                <OffsetPixels X="240" Y="-200" />
                <Rotation Degrees="0" />
            </Component>
            <Component Id="TBar">
                <AnchorUv X="0" Y="1" />
                <PivotUv X="0.5" Y="0.5" />
                <SizePixels X="48" Y="48" />
                <OffsetPixels X="240" Y="-200" />
                <!--<Rotation Degrees="45" />--> <!-- would need to use GaugeRotVert to use this -->
            </Component>
        </Gauge>

and these reference defined “GaugeComponents” can get reused:

<Assets>
    <GaugeComponent Id="Navball">
        <Vertex Id="GaugeVert"/>
        <Fragment Path="Shaders/Navball.frag"/>
        <Gauge Id="Fragment"/>
    </GaugeComponent>
    <GaugeComponent Id="TBar">
        <Vertex Id="GaugeVert"/>
        <Fragment Path="Shaders/GaugeTBar.frag"/>
    </GaugeComponent>
</Assets>

which this means is you can write fragment shaders (as an option) to make UI elements. THis is good, but also a little dangerous. If they are small - they are really chheap. but the bigger they get, the more expensive they are
In thiis screenshot i’ve “unlocked” them so you can see the borders

with this unlocked, I can customize it live, which helps me choose the values to put in the XML

you can resize manually, but in that slider is useful for more precise changes around the pixel etc…

Adjustments seem really fast and simple, both sensible tweaks, and not so sensible ones: