A: Since the version 0.9.3b the view color is the same as UIKit "backgroundColor". So changing this property will immediately change the NGLView background color. The NGLView no longer responds to "setOpaque:", any attempt of setting this method/property will be silently ignored (even from XIB files). In NinevehGL alpha channel is defined by the Global Color Format, which by default for performance reasons is RGB. If you want to use alpha channel to your 3D objects or just to make a NGLView transparent, this is what you need:
A: Yes, you can! Just remember that NinevehGL still in Beta phase, it means that we are not aware of all the bugs/issues yet. We are not responsible for any problems that NinevehGL may cause in your app.
A: Check out the Changelog page and see everything we're planing to NinevehGL.
A: Sure. As the NGLView is a subclass of UIView, to draw contents to Retina Displays or larger screens all you need is to set the
contentScaleFactor property of your NGLView. But use it carefully! It can reduce the performance of your render. As Apple advises us, preffer to use a scale factor of 1.5 or another intermediate value between 1.0 - 2.0 (Apple Drawing Guide). Another solution to consider is to use the
antialiasSamples property of your NGLView.
By default, these two properties are 1, which reaches the maximum performance.
A: No. NinevehGL was made specifically to programmable pipepline, which is faster, lighter and much more stable than the old fixed pipeline (OpenGL ES 1.1). If a new OpenGL ES 3.0 come in the future, NinevehGL will probably support it too.
A: You don't need to worry about the render cycle. NinevehGL is prepared to stop and resume rendering when your application changes between background/foreground states. Just handle those actions for things related to your application, not related to NinevehGL.
A: The NinevehGL works with an internal cached file that is updated automatically according with the date of modification of the original file. However, the Xcode can produce an internal annoying cache. You can clean up this cache by deleting the contents at "~/Developer/Xcode/DerivedData/".
A: This is a problem related to the compiler. NinevehGL was made with the LLVM GCC 4.2 and works fine with later compilers (like Apple LLVM 3.0). When you create a new project with Xcode 4.1 or later, the default compiler will be at least LLVM GCC 4.2, but if you migrate your project from Xcode 3.x, so maybe you have to change "C Language Dialect" to "GNU99 [-std=gnu99]" too.
A: Yes, but it depends on what kind of information your third party lib needs. For example, if the lib needs only matrices or spacial location it's OK, you can pass those informations by calling a method on your NGLMesh instance. However, if your third party lib needs something deep in OpenGL pipeline, like framebuffers, then you can't use this lib with NinevehGL, because all the OpenGL structure is under the surface in NinevehGL.
A: No. There are no reasons for that. GLKit was made to simplify programming with OpenGL ES 2.0, just like NinevehGL, but GLKit is not a 3D engine. NinevehGL does everything that GLKit does and much much more. GLKit is similar to NinevehGL in some points, for example GLKView and NGLView are both a subclass of UIView and can make similar things, like snapshot, however it's merely conincidence. NinevehGL was launch one week before the GLKit in WWDC 2011, but GLKit is just a lib, not an engine. It doesn't import 3D files like OBJ or COLLADA, GLKit doesn't implement cameras, GLKit doesn't have meshes, it doesn't have Tween API, it doesn't have mesh's materials, etc.