Asíntota superpuesta 3D incorrecta

Asíntota superpuesta 3D incorrecta

Acabo de instalar Asymptote para hacer un modelo 3D con anotaciones en LaTeX.

Mi modelo consta de varios objetos 3D y no se superponen bien, parece que se dibujan en el mismo orden que está en mi guión.

Aquí está mi 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);

Y esta es mi salida Imagen de salida con superposición incorrecta

Creo que es un problema con

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

También intenté ejecutar los ejemplos desde la página Asíntota.Ejemplos 3D del sitio Asíntotay el código de respuesta para esta preguntaEjemplos de asíntota 3D de StackExchangepero siempre me equivoqué al superponer.

Instalé Asymptote versión 2.67 junto con Ghostscript 9.19, todo en Ubuntu 18.

¿Puedes ver algo que me falta? Gracias de antemano.

Respuesta1

Para una representación 3D sólida, utilice salida rasterizada. por ejemplo, con comando

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

tenemos

ingrese la descripción de la imagen aquí

donde 3d-overlap.asycontiene el código de la pregunta con el sizeañadido:

size(9cm);

información relacionada