我正在使用适用于 iOS 的 Qualcomm 增强现实 FrameMarkers 演示,并切换了我们的 3D 人员给我的模型(实际上他更像是一个涉足 3d 的 2d 人 - 这就是我试图解决这个问题的原因代码端;而不是 3D 端)。问题在于纹理 - 演示假定 2d 图像纹理绑定到 3d 模型。然而,我们的 3D 人员已经将纹理构建到对象本身中(例如程序纹理)。
最初,该物体看起来完全是黑色的,看不到任何细节。通过从演示中删除这些行,我设法使它变得更好:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, [obj3D.texture textureID]);
这让一切都变成了一种银色的颜色,我现在可以看到一些细节和一些表面的一些反射(它实际上应该在某些地方是半透明的,而不是纯粹的反射——所以这也是一个问题..)。
我在一些地方读到,为了实现半透明,这些命令是必需的;
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
然而,对我来说 - 他们只是把整个屏幕变黑..
正确的:
应用内: