more dynamic shader uniform system