I am assuming that checkerboard is a texture and not made from geometry. Multisample anti-aliasing will only smooth geometry edges. Something like FXAA needs to be used to also smooth edges found in textures. However, mipmapping (trilinear filtering) may also help in this case. You can enable trilinear filtering on a texture by using the FT_linear_mipmap_linear filter type.
def make_plane():
vformat = GeomVertexFormat.get_v3n3t2()
vdata = GeomVertexData('vdata', vformat, Geom.UHStatic)
vdata.uncleanSetNumRows(4)
vertex = GeomVertexWriter(vdata, 'vertex')
normal = GeomVertexWriter(vdata, 'normal')
tcoord = GeomVertexWriter(vdata, 'texcoord')
quad = ((0, 0), (1, 0), (0, 1), (1, 1))
for u, v in quad:
vertex.addData3(u - 0.5, v - 0.5, 0)
normal.addData3(0, 0, 1)
tcoord.addData2(u, v)
prim = GeomTriangles(Geom.UHStatic)
prim.addVertices(0, 1, 2)
prim.addVertices(2, 1, 3)
geom = Geom(vdata)
geom.addPrimitive(prim)
return geom
for xi in range(-10, 11):
for yi in range(-10, 11):
tile = GeomNode(f"tile-{xi}.{yi}")
tile.add_geom(geometry.make_plane())
tile_path = node.attach_new_node(tile)
tile_path.set_pos((xi, yi, 0.0))
if (xi + yi) % 2:
tile_path.set_color((0.95, 0.95, 1.0, 1.0))
else:
tile_path.set_color((0.13, 0.13, 0.2, 1.0))