Assíntota: Como desenhar superfícies com mais de quatro vértices sem “costuras”?

Assíntota: Como desenhar superfícies com mais de quatro vértices sem “costuras”?

No Assíntota 3D, preciso desenhar superfícies com mais de 4 vértices, mas quando o faço, simplesmente não funciona (não posso reproduzir isso em um exemplo simples, mas posso fornecer um caso mais complicado onde isso acontece se é útil) ou aparece uma costura, como no exemplo abaixo:

settings.prc = false;
defaultpen(fontsize(10pt));
import three;
import graph3;
import patterns;
size(11cm,0);

currentprojection=perspective((10,-20,10));
currentlight = (3,-2,3);

render render = render(compression=Low, merge = true);

draw(surface((0,0,0) -- (1,0,0) -- (1,1,0) -- (0.5,1.5,0) -- (0,1,0) -- cycle), lightblue+opacity(0.5), render);

Executando este comando

asy -noprc -render 0 -f pdf example.asy

dá a seguinte imagem:

“Casa” gerada pelo código.

Existe uma maneira de se livrar da "costura" azul escura?

Responder1

Parece que o "comportamento da costura" depende do visualizador de PDF e da -renderopção. Problemas de "costura" aparecem com opacidade e -render=0opção: dependendo do visualizador de pdf a sobreposição de uma borda comum dos dois patches cria tal comportamento.

Com -noprce -render=0, temos "seam" com Okular, acroread, gv (a imagem é vetorizada). Nenhuma "costura" com evince, mupdf, zathura. Tenho problemas de transparência com Evince e Zathura. mupdf está bem.

Com -noprc(para que a renderização OpenGL seja usada e uma imagem bitmap seja produzida) não há nenhuma "junção".

Para ser mais preciso, todas as versões estão atualizadas do Debian Sid.

Conforme explicado na documentação, -render=0é muito limitado.

informação relacionada