All Projects → MerlinVR → MUI

MerlinVR / MUI

Licence: MIT license
Modification of the Unity builtin UI shader that fixes the edges of quads being visible on text characters

Programming Languages

ShaderLab
938 projects

Projects that are alternatives of or similar to MUI

ACLS-Shader
Unity HLSL VR ready "Toony/PBR hybrid" avatar shader for VRCHAT and similar platforms. Built with game industry standard toony appearances and adaptive to vrchat render constraints and reactive to common incorrect user generated map lighting.
Stars: ✭ 20 (+17.65%)
Mutual labels:  vr, vrchat
home-space
Startpage and WebXR home
Stars: ✭ 43 (+152.94%)
Mutual labels:  vr, vrchat
SlimeVR-Server
Server app for SlimeVR ecosystem
Stars: ✭ 361 (+2023.53%)
Mutual labels:  vr, vrchat
OpenXRHandTracking
OpenXR API layer enabling XR_EXT_hand_tracking support using Ultraleap tracking
Stars: ✭ 38 (+123.53%)
Mutual labels:  vr
vr
Blues VR - 基于 krpano 的全景浏览实现
Stars: ✭ 19 (+11.76%)
Mutual labels:  vr
aframe-controller-cursor-component
A cursor for tracked controllers.
Stars: ✭ 30 (+76.47%)
Mutual labels:  vr
pyomyo
PyoMyo - Python Opensource Myo armband library
Stars: ✭ 61 (+258.82%)
Mutual labels:  vr
emscripten-webxr
WebXR library for use with Emscripten.
Stars: ✭ 21 (+23.53%)
Mutual labels:  vr
RobCoG
Robot Commonsense Games
Stars: ✭ 31 (+82.35%)
Mutual labels:  vr
thedarkmodvr
VR support for The Dark Mod
Stars: ✭ 49 (+188.24%)
Mutual labels:  vr
openvr fsr app
Management Gui for OpenVR FSR PlugIn
Stars: ✭ 179 (+952.94%)
Mutual labels:  vr
Simple-OpenVR-Driver-Tutorial
A sample OpenVR Driver for you to learn from
Stars: ✭ 157 (+823.53%)
Mutual labels:  vr
aframe-registry
[DISCONTINUED] Curated collection of community A-Frame components.
Stars: ✭ 76 (+347.06%)
Mutual labels:  vr
soundstagevr
virtual reality music sandbox built specifically for room-scale VR
Stars: ✭ 38 (+123.53%)
Mutual labels:  vr
embedding
Embedding data into immersive environments
Stars: ✭ 26 (+52.94%)
Mutual labels:  vr
OpenXR-CTS
Conformance test suite for OpenXR
Stars: ✭ 38 (+123.53%)
Mutual labels:  vr
aframe-mirror-component
Mirror effect material that works with snapshots of the scene for A-Frame
Stars: ✭ 29 (+70.59%)
Mutual labels:  vr
cssvr
CSSVR is an experiment that simulates browser support for creating VR experiences using media queries and CSS transforms.
Stars: ✭ 83 (+388.24%)
Mutual labels:  vr
FireVR
Blender to JanusVR FireBoxHTML Exporter Addon (with IPFS support)
Stars: ✭ 25 (+47.06%)
Mutual labels:  vr
three-laser-pointer
Interactive laser object for VR-like scenes
Stars: ✭ 26 (+52.94%)
Mutual labels:  vr

MUI

Modification of the Unity builtin UI shader that fixes the edges of quads being visible on text characters

Example

Before

before

After

after

Why text rendering gets broken and what this does

When you use MSAA as a solution for anti-aliasing in games, it comes with a less well known side effect. That is, if you have a value getting interpolated across a surface and some MSAA samples fall outside of the bounds of the rasterized area on the edges, the interpolated values will get extrapolated. This means that if you have a quad with texture coordinates going from (0, 0) in the top left to (1, 1) in the bottom right, it is entirely valid to have some pixels that receive extrapolated values at the edges of (1.1, 0.5) for instance.

This is not an issue most of the time, but in this case, Unity only has 1 pixel of padding on the texture atlas they generate for text glyphs. Because of this, if you overshoot the texture coordinates by even 1 pixel in the atlas, you have a good chance of sampling a neighboring glyph in the atlas.

This small modification to the builtin UI shader fixes that using a technique used by Valve for fixing extrapolation of mesh normals. The description of their fix can be found on slide 44 of this slideshow. But basically, this will switch to centroid interpolation which does not extrapolate if it detects a sample will fall out of the bounds of a given triangle. Centroid interpolation does not have valid derivatives, so you generally do not want to use it unless you need to.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].