Abstraction Layer for Shader Languages: A language aimed at absorbing differences shader languages