循环三维路径渐近线的透明表面颜色(表面不透明度问题)

循环三维路径渐近线的透明表面颜色(表面不透明度问题)

我正在尝试创建一个类似于以下的图形这里还有一个问题透明平面

但是当我尝试渲染一个简单平面的彩色透明表面时,有些东西看起来不对劲。使用以下代码

import bsp;

size(15cm,0);

settings.outformat = "pdf";
settings.render = 5;
currentprojection=orthographic(5,4,3);

path3 pl = plane((0,-6,0),(-6,0,0),(0,3,0));

draw(pl);
draw(surface(pl), red+opacity(0.5), nolight);

我得到了输出

飞机表面颜色不正确

尽管平面表面应该完全呈现为红色,不透明度为 0.5。当我删除该opacity(0.5)选项时,如下所示

draw(surface(pl), red, nolight);

我得到了期望的输出:

当不透明度选项被移除时,表面被正确渲染

但即使我直接从回答另一个 stackexchange 问题,所述问题仍然存在:

即使运行另一个答案的代码,我仍然遇到同样的问题

我已经尝试在文档以及此 stackexchange 上的其他帖子,但到目前为止尚未找到任何答案。我做错了什么?

.asy编辑:我正在使用asymptote CLI在文件中渲染 asymptote 代码,不是在 latex 文档环境中asy。我还想保持这种方式,即使用 CLI 单独渲染我的渐近线图形,然后将它们插入到我的 latex 文档中。

asy编辑2:当我在乳胶文件的环境中编译渐近线代码时pdflatex,生成的plane.asy文件是:

if(!settings.multipleView) settings.batchView=false;
settings.tex="pdflatex";
defaultfilename="asymptote-1";
if(settings.render < 0) settings.render=4;
settings.outformat="";
settings.inlineimage=true;
settings.embed=true;
settings.toolbar=false;
viewportmargin=(2,2);

import bsp;

size(15cm,0);

settings.outformat = "pdf";
settings.render = 5;
currentprojection=orthographic(5,4,3);

path3 pl = plane((0,-6,0),(-6,0,0),(0,3,0));

draw(pl);
draw(surface(pl), red+opacity(0.5), nolight);

输出结果 本地编译 .tex 文件仍然会导致与使用 asy 渲染相同的问题 为 因此,平面仍未正确渲染。之前,我编译了一个.tex包含我的渐近线代码的测试文件背页(也使用pdflatex)并且平面正确呈现到生成的 pdf 中。我应该在第一次编辑时澄清这一点。总之,我的问题一定是本地问题。我想在 MacBook Pro (M1) 上编译所有内容,但不记得更改过 asymptote CLI 的任何默认设置。

编辑 3:现在我尝试在 Mac 上安装不同版本的 asymptote。我使用的是 2.85 版(texlive/mactex 预装的)。今天,我使用 homebrew 单独安装了 2.89 版,并再次编译了我的代码 - 遗憾的是,问题仍然存在。此外,自从我发布了这个问题后,我重新安装了 MacTex(以及 texlive),但我仍然遇到同样的问题。当然,我也尝试了旧的“重新启动 PC”技巧。

编辑 4:我稍微编辑了标题,因为我发现这在我的计算机上是一个更普遍的问题,当我尝试编译来自文档也就是说,当我从文档第 138 页编译表面时,我发现了类似的(我认为相关的)问题:编译

import bsp;

settings.outformat = "pdf";
settings.render = 5;

size(15cm,0);

draw(surface((0,0)--E+2N--2E--E+N..0.2E..cycle), red);

生成 从文档中正确渲染表面 预期结果。但+opacity(0.5)添加

draw(surface((0,0)--E+2N--2E--E+N..0.2E..cycle), red+opacity(0.5));

生产 当根据文档向表面添加不透明度(0.5)时,问题仍然存在

答案1

我注意到这个问题可能更普遍,经过进一步挖掘,我发现另一个问题似乎有同样的问题。因此,@Nat Kuhn 打开了一个github 上的问题到目前为止,基于对 github 问题的回复,如 @Nat Kuhn 所述回答,MacOS 缺少某些软件支持,无法正确渲染透明表面。问题最终解决后,我会接受这个答案。

相关内容