谁能告诉我在使用 JCanvas3D 而不是 Canvas3D 时我们面临的问题?
如何使用 JCanvas3D 实现透明度?
问候,哈里帕萨德
我现在能找到的对 JCanvas3D 的唯一引用是在 com.sun.j3d.exp.swing 包中。该软件包的 API 实际上有一个实验性警告。话虽如此,论坛中仍然有相当多的活动,听起来人们仍在积极研究代码。
这两者之间的区别似乎是 Canvas3D 是标准的“AWT”式重量级组件,而 JCanvas3D 是其 Swing 对应物。
在搜索了更多之后:我发现这个花絮是从交互式网格的答案中引用的,听起来它会回答你更具体的问题。
透明场景背景适用于所有轻量级 3D 画布(JCanvas3Dxyz、FxCanvas3Dxyz)。将 Java 3D 系统属性“transparentOffScreen”设置为 true(-Dj3d.transparentOffScreen=true 或 System.setProperty("j3d.transparentOffScreen", "true"))会导致场景背景中所有像素的 alpha 值为 '0'区域,以便显示面板自己的背景颜色。当将其 opaque 属性切换为 false 时,父面板将呈现在场景背景区域中。
这允许 - 创建精美的背景或 - 在 JFrame 内的所有面板上移动 3D 场景内容或 - 创建分层的 3D 场景。
Canvas3D 中的场景背景区域始终是不透明的。
-八月