Display question about transparent intersected surfaces
3 次查看(过去 30 天)
显示 更早的评论
Why when I set the intersected surfaces' transparent with 'FaceAlpha', the intersected regions display invalid.
Code:
x=[0:0.01:3];
y=[0:0.01:5];
[X,Y]=meshgrid(x,y);
Z1=X*1.1+Y*1;
Z2=X+Y*1.1;
mesh(X,Y,Z1,'FaceColor','b','EdgeAlpha',0,'FaceAlpha',0.5)
hold on
mesh(X,Y,Z2,'FaceColor','r','EdgeAlpha',0,'FaceAlpha',0.5)
The figure
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/191768/image.jpeg)
3 个评论
Jan
2018-7-10
Which Matlab version are you using? Is OpenGL set to hardware or software?
I can reproduce this effect with Matlab online.
采纳的回答
Wentao Du
2018-7-13
This issue is due to the Order Independent Transparency method used by MATLAB called "Depth Peeling." Unfortunately, there are no existing workarounds.
Changing to "opengl" setting to "hardwarebasic" gives a slightly better result, as this triggers the transparency to use an "object sort" method (Typically this is worse than any Order Independent Transparency method). Or you may use the "painters" renderer for the figures created by executing the following:
>> set(gcf,'Renderer','painters');
Our development team is looking into addressing this issue and it will be considered for a future release of MATLAB.
0 个评论
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!