JavaFX 8 3D 深度测试取决于添加对象的顺序

问题描述

参考 this question,我找到了一个简单的例子来说明我的问题。 其中提供的解决方案使用透明和轨道框,其中小框 Box2 即使在透明大框 Box1

后面也能很好地看到

然而,整件事都围绕着这条线:

shapes.getChildren().addAll(Box2,Box1);

如果您交换添加它们的顺序,或者将 Box2 也更改为透明,那么您会看到始终绘制先到者(即使在透明形状后面)但添加到组的第二个形状不会被绘制(即使形状“隐藏”它是透明的)。

换句话说,在执行深度测试时似乎没有考虑透明度。如果您不能安全地判断哪个将在背景中,或者如示例中的对象交换位置,这将是有问题的。

如果您尝试使用 DiffuseMap(例如具有透明度的图像)而不是带有 alpha 的 DiffuseColor,那么效果会更好。

这是错误还是功能? 有没有办法消除这个问题,例如通过向材质添加透明的 DiffuseMap ? (不知道怎么做,只是一个想法)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)