Асимптота неправильное 3D перекрытие

Асимптота неправильное 3D перекрытие

Я только что установил Asymptote для создания 3D-модели с аннотациями в LaTeX.

Моя модель состоит из нескольких 3D-объектов, и они не очень хорошо перекрываются. Кажется, что они рисуются в том же порядке, что и в моем скрипте.

Вот мой код:

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);

И это мой результат Вывод изображения с неправильным перекрытием

Я думаю, что это проблема с

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

Я также попробовал запустить примеры со страницы Asymptote3D примеры с сайта Asymptoteи код ответа на этот вопросПримеры 3D Asymptote из StackExchangeно я всегда ошибался, накладываясь друг на друга.

Я установил Asymptote версии 2.67 вместе с Ghostscript 9.19, все в Ubuntu 18.

Видите ли вы что-нибудь, что я упустил? Спасибо заранее.

решение1

Для сплошной 3D-рендеринга используйте растровый вывод. например, с помощью команды

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

у нас есть

введите описание изображения здесь

где 3d-overlap.asyсодержится код из вопроса с sizeдобавленным:

size(9cm);

Связанный контент