我在iPhone上看3D,我已经设法在设备上获得3D立方体但是想要添加交互性,例如触摸一个面部发射特定事件而另一个面部发生不同事件。我宁愿避开光线拾取,因为这会增加我在我的应用中不需要的额外复杂性。
我已经阅读了很多颜色选择教程,但网上似乎没有任何特定于iPhone的教程或示例代码。
我的主要问题是将独特的彩色对象绘制到后缓冲区,将纹理对象绘制到前缓冲区,从不向用户显示唯一的彩色对象,但检测从后缓冲区触摸的像素的颜色。
所以我的问题是,任何人都可以指向Objective-C教程的方向或发布一些示例代码吗?
非常感谢任何帮助或建议。
答案 0 :(得分:3)
好的,所以18小时后我终于解决了我的问题。在render方法中,我所要做的就是在渲染处于SELECT模式时阻止presentRenderbuffer
调用。我现在可以踢自己了!
if (mode == SELECT) {
glDisable(GL_DITHER);
glDisable(GL_LIGHTING);
glDisable(GL_LIGHT0);
}
// Draws the cube object, face by face and adds unique color to each face
[Face1 draw];
[Face2 draw];
[Face3 draw];
[Face4 draw];
[Face5 draw];
[Face6 draw];
if (mode == SELECT) {
glEnable(GL_DITHER);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}
// Wrapping presentRenderbuffer with this if statement fixed
// the problem where the unique colors would appear onscreen
if (mode == RENDER) {
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
}
我希望将来可以帮助其他人:o)