Assíntota sobreposição 3D errada

Assíntota sobreposição 3D errada

Acabei de instalar o Asymptote para fazer um modelo 3D com anotações em LaTeX.

Meu modelo consiste em vários objetos 3D e eles não estão bem sobrepostos, parece que estão sendo desenhados na mesma ordem que está no meu script.

Aqui está o meu código:

import graph3;
import solids;
import three;

currentlight=White;

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

//body
revolution sph=sphere((0,0,0.0),1.0);
draw(surface(sph),green+white+opacity(1.0), render);

//arms
revolution armY=cylinder(O,0.25,5.0,Y);
draw(surface(armY),green+white+opacity(1.0), render);
draw(surface(shift(0,-5,0)*armY),green+white+opacity(1.0), render);

revolution armX=cylinder(O,0.25,5.0,X);
draw(surface(armX),green+white+opacity(1.0), render);
draw(surface(shift(-5,0,0)*armX),green+white+opacity(1.0), render);

//motors
revolution motor=cylinder(O,0.25,0.6,Z);

draw(surface(shift(0,5,-0.25)*motor),green+white+opacity(0.05), render);
draw(surface(shift(5,0,-0.25)*motor),green+white+opacity(0.05), render);
draw(surface(shift(0,-5,-0.25)*motor),green+white+opacity(0.05), render);
draw(surface(shift(-5,0,-0.25)*motor),green+white+opacity(0.05), render);

E esta é a minha saída Imagem de saída com sobreposição errada

Eu acho que é um problema com

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

Também tentei executar os exemplos da página AssíntotaExemplos 3D do site Asymptotee o código de resposta para esta perguntaExemplos de assíntotas 3D do StackExchangemas sempre errei na sobreposição.

Instalei o Asymptote versão 2.67 junto com o Ghostscript 9.19, tudo no Ubuntu 18.

Você pode ver alguma coisa que estou perdendo. Desde já, obrigado.

Responder1

Para renderização 3D sólida, use saída raster. por exemplo, com comando

asy -f png -noprc -render=4  3d-overlap.asy

Nós temos

insira a descrição da imagem aqui

onde 3d-overlap.asycontém o código da pergunta com o sizeadicionado:

size(9cm);

informação relacionada