in mujoco_py/modder.py [0:0]
def set_gradient(self, name, rgb1, rgb2, vertical=True):
"""
Creates a linear gradient from rgb1 to rgb2.
Args:
- rgb1 (array): start color
- rgb2 (array): end color
- vertical (bool): if True, the gradient in the positive
y-direction, if False it's in the positive x-direction.
"""
# NOTE: MuJoCo's gradient uses a sigmoid. Here we simplify
# and just use a linear gradient... We could change this
# to just use a tanh-sigmoid if needed.
bitmap = self.get_texture(name).bitmap
h, w = bitmap.shape[:2]
if vertical:
p = np.tile(np.linspace(0, 1, h)[:, None], (1, w))
else:
p = np.tile(np.linspace(0, 1, w), (h, 1))
for i in range(3):
bitmap[..., i] = rgb2[i] * p + rgb1[i] * (1.0 - p)
self.upload_texture(name)
return bitmap