我正在使用这个简单的函数在面向相机的3D空间中绘制四边形。现在,我想使用片段着色器来绘制内部球体的错觉。但是,问题是我是OpenGL ES的新手,所以我不知道如何?如何使用片段着色器在OpenGL ES中绘制球体错觉?
void draw_sphere(view_t view) {
set_gl_options(COURSE);
glPushMatrix();
{
glTranslatef(view.plyr_pos.x, view.plyr_pos.y, view.plyr_pos.z - 1.9);
#ifdef __APPLE__
#undef glEnableClientState
#undef glDisableClientState
#undef glVertexPointer
#undef glTexCoordPointer
#undef glDrawArrays
static const GLfloat vertices []=
{
0, 0, 0,
1, 0, 0,
1, 1, 0,
0, 1, 0,
0, 0, 0,
1, 1, 0
};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 6);
glDisableClientState(GL_VERTEX_ARRAY);
#else
#endif
}
glPopMatrix();
}
更精确地说,我要做到这一点:
您的代码示例使用仅由ES 1支持的功能,ES 2没有这些功能。但是ES 1没有着色器。那么你的目标是什么版本的OpenGL ES? – 2013-04-08 13:39:25
那么,我猜OpenGL ES 2. – miller 2013-04-09 07:51:48
然后你的代码示例将无法正常工作,因为它只使用OpenGL ES 2支持的单个函数。 – 2013-04-09 08:08:05