Shader Programming for Games I