我正在使用 isgl3d 框架运行一个 iOS 项目来显示 pod 文件。
我有一辆带有 0.5 alpha 窗口的时尚汽车,我希望在相机背景上渲染它,以寻求一些增强现实的好处。
窗口上的 alpha 看起来不错,但是当我添加对象时,我注意到它透明地渲染了整个对象,也就是窗口所在的位置。包括汽车内饰。
像这样(例如,键盘可以通过仪表板,座椅等看到。应该是实心的)
汽车内部是一个 alpha 1.0 的单独对象。
我宁愿不在我的项目中展示“幽灵车”,但我还没有找到解决方法。
有没有人遇到过同样的问题,并最终找到了解决方案?
已解决: 感谢黛米的回答。这是最终代码:
// Render opaque objects
[_scene render:renderer opaque:true];
// First planar shadow pass (if needed)
[self renderPlanarShadows:renderer];
// Render transparent objects
glColorMask(1, 1, 1, 0);
if (_zSortingEnabled) {
[_scene renderZSortedAlphaObjects:renderer viewMatrix:&viewMatrix];
} else {
[_scene render:renderer opaque:true];
}
glColorMask(1, 1, 1, 1);