O Matlab pára a interpolação de cores em uma malha corretamente se for maior que 120 triângulos

Eu estou tentando desenhar uma malha grande em Matlab usando otrimesh função, com a coordenada z dos vértices controlando a cor. Infelizmente, o Matlab interrompe a interpolação de cores corretamente quando o tamanho da malha excede 120 triângulos. Aqui está uma foto demonstrando o problema, com 120 triângulos à esquerda e 121 triângulos à direita.

Como você pode ver, para malhas grandes, o Matlab interpola diretamente da cor de um vértice para a cor do outro vértice. Provavelmente, isso foi feito por motivos de desempenho, mas estou tentando gerar boas fotos para minha tese e não me importo com o tempo necessário para calculá-las. Existe uma maneira de desabilitar essa aproximação?

Aqui está o código para gerar a imagem:

function test(n)
    %%% Generate a mesh with n triangles.

    oneTriVerts = [0 0 0;
                   1 0 0;
                   1 0 1];

    offset = [0 (1/n) 0;
              0 (1/n) 0;
              0 (1/n) 0];

    verts = zeros(0,3);
    tris  = zeros(0,3);
    for i = 0:(n-1)
        verts = [verts; (oneTriVerts + i * offset)];
        tris = [tris; i*3+1, i*3+2, i*3+3];
    end

    %%% Draw the mesh, with color corresponding to the z coordinate.

    trimesh(tris, verts(:,1), verts(:,2), verts(:,3), verts(:,3));
    title(sprintf('n = %d', n))
    shading interp
    axis equal

questionAnswers(1)

yourAnswerToTheQuestion