When you draw with GL_POINTS
in ES2 or ES3, you need to specify gl_PointSize
in the vertex shader or you'll get undefined behavior (ugly rendering on device at best, the crash you're seeing at worst). The vertex shader GLKBaseEffect
uses doesn't do gl_PointSize
, so you can't use it with GL_POINTS
. You'll need to implement your own shaders. (For a starting point, try the ones in the "OpenGL Game" template you get when creating a new Xcode project, or using the Xcode Frame Debugger to look at the GLSL that GLKBaseEffect
generates.)
GL_LINES
should work fine as long as you're setting an appropriate width with glLineWidth()
in client code.