Hi again everybody!
I’m so glad to say that NinevehGL is coming!
This is completely amazing!!!
Using the solid ideias of Nineveh Framework (check the link on top menu), NinevehGL is a 3D engine, forged into deepest pure Objective-C to work so easily with OpenGL ES 2.x.
So fast! So powerful! So simple!
“Keep it simple” is the golden rule. Everything in NinevehGL is simple, as the official page: nineveh.gl
Just it!
So I’ll use this post to talk a little about NinevehGL and what is coming with it.
![divulgation_2 NinevehGL is coming](http://db-in.com/blog/wp-content/uploads/2011/01/divulgation_2.jpg)
NinevehGL website is online. Soon the engine will be here.
Access nineveh.gl
Introduction
First of all, NinevehGL grew up from my Genius-Simon APP (a 3D game). Who work with OpenGL know you have a lot of setups until start to draw something. The programmable pipeline gave us a lot power and flexibility, but brought a lot of more code with it.
Talking about OpenGL ES 2.x, you need to write around 30 lines (true lines) of code to draw something. Of course without count mesh’s data like vertices, normals and texture coordinates.
I’ve seen guys writing more than 300 lines (true lines) and 10 classes just to draw a fucking colored cube on the screen!
Well, months ago, I started looking for a 3D engine.
I went through PowerVR, Oolong, SIO2, Torque, Ogre, Coccos, UDK, Unity, Quake, Wolfenstein, Shiva, Galaxy… oh my GOD!!!!
My conclusion was: a piece of shit!!! All of that!
All of that was very complex to set, doesn’t work with programmable pipeline, expensive, running slowly, out of date and the worst thing… was not made in pure Objective-C!!! Most of them was made in C++ or Objective-C++.
I took a deep breath and tried a last question:”OK, tell me, famous 3D engines, what kind of 3D files do you import? What kind of file do you can parse to me directly to OpenGL? OBJ files, 3DS, Collada?”. And the best part, was the answer! Do you can imagine what they, the famous 3D engines, told me?
They told me:”Hugh? Import what?”
Son of a *^&@!$!!!
Mother F*!$&%
Go F*#@^! and up your A$!
I took another real DEEP breath…
Well, well, wel…
“If Mohammed will not go to the mountain, the mountain must come to Mohammed.”
Oh right! So was time to a new 3D engine!
At that point, NinevehGL started to grow inside me. Growing to does everything that the others did not! And now, more than 6 months later, NinevehGL finally is coming.
Let’s talk about the features now.
NinevehGL’s Features
I’ll just tell the features and you take your own conclusion:
- Import 3D files (FULL IMPORTS)!
- Work with camera
- Work with cached matrices, this can boost the render’s performance up to 300%
- Work with materials, just as the 3D softwares
- Has a Shader API, this means, you can create shaders dynamically and easily
- The APIs are not dependent of the OpenGL’s version
- Optimized for speed and memory
- Always use OpenGL buffers and optimized formats
- One single line of code can create a 3D application
- One single line of code can import and automatically create a full mesh, with all it’s shaders and materials.
- Support for polygons and meshs
- Support for Multi/Sub Materials (oh my God, this is so incredible! You can import an OBJ file with more than 60.000 polygons and more than 100 materials and NinevehGL will create everything perfect for you)
- Fully Obj-C
- Is fully documented
- Is totally FREE
Oh man, I’m so excited that I need to tell you more about.
The file imports, like OBJ file, is not a simple import of vertices, textures coordinates and normals as you can see in somewhere. No! Is a FULL IMPORT.
OBJ file supports bump maps, reflections, refractions, specular, shininess and everything which is supported by OBJ file comes into your Application with just a single shy line of code!
Another thing that drives me crazy (of happiness) is the Shader API.
It’s so fantastic!
Imagine this, obviously NinevehGL works with his own shaders to parse 3D files, but the beauty of programmable pipeline is precisely the shaders and the ability to create them. So, you can create your own shaders (in the code or external file, whatever) and pass they to the NinevehGL. So what happen is incredible! NinevehGL will interpret your shader and will join they into the NinevehGL’s shader, creating a new behavior.
Exist so many great features, if I continue telling here, this post will never end.
The last thing I want to talk is about when NinevehGL will out.
Very soon
I’m thinking about 3 or 4 weeks, but I don’t wanna promise anything.
You know, always have contingency. It is normal.
I need to prepare the website, the divulgation, but with all this kind I think it take about a month. It’s a good time.
Now I’m testing the engine exhaustively, with many 3D files, with the most crazy structures, stress tests, you know, this kind of thing. But when it out, I’ll need a lot of people to test it, specially about 3D files. So if you has your 3D scenes or meshes in Maya, 3DS Max, Modo, Zbrush, LightWave, Rhino and XSI and want to help me to test, let me know.
Thanks to everybody for reading my crazy excitements.
See you guys!