Question

In OpenGL NURBs can be drawn using evaluators. But it seems evaluators were removed from OpenGL ES spec to make it light weight. In that case, how can one draw NURBs using OpenGL ES API?

Was it helpful?

Solution

You won't get around implementing the NURBS stuff yourself. Meaning you have to sample the curve or surface at discrete points and thus convert it to an ordinary line strip or triangle set respectively. This can then be drawn with the usual vertex arrays/buffers, which should also be faster than evaluators or the GLU NURBS functions.

OTHER TIPS

In openGL, NURBS curves are rendered in 2 steps - 1) evaluate some points (100 or 1000) on the curve using the mathematical formula. This can be done on GPU in openGL4, using the SSBOs (Shader Storage Buffer Objects). 2) render the evaluated points as line strip, using the VBOs.

If you want to understand the NURBS in more detail, then there is a nice web-app available here.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top