Я использую эту простую функцию для рисования квадроциклов в 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 вы нацеливаете? –
Ну, я думаю, OpenGL ES 2. – miller
Тогда ваш пример кода не будет работать, поскольку он использует только одну функцию, поддерживаемую OpenGL ES 2. –