#
# Create checkerboard pattern
#
# tex dims need to be power of two.
arr_w = 16
arr_h = 8
import numpy as np
def gen_checkers(width, height, n_checkers_x, n_checkers_y):
array = np.ones((width, height, 3), dtype='float32')
# width in texels of each checker
checker_w = width / n_checkers_x
checker_h = height / n_checkers_y
for y in range(height):
for x in range(width):
color_key = int(x / checker_w) + int(y / checker_h)
if color_key % 2 == 0:
array[x, y, :] = [ 0, 0, 0 ]
else:
array[x, y, :] = [ 1, 1, 1 ]
# We need to flip x/y since threejs/webgl insists on column-major data for DataTexture
return np.swapaxes(array, 0, 1)
data_tex = DataTexture(
data=gen_checkers(arr_w, arr_h, 4, 2),
format="RGBFormat",
type="FloatType",
)