optimization: move texture parameters from sampler to texture it self