So you're making an OpenGL mesh library? Is the idea to make a new model format or to simplify rendering? Either way you should add support for loading an open format like OBJ.
Simplification is the goal. I want people to be able to make interactive 3D or 2D art. Blender is great for making videos and images but the art isn't real-time interactive or malleable.
Adding Obj format support is a fantastic idea. Make a model in blender, import into your D program and use that in your interactive art. I'll add that to the feature list.
Interesting that you didn't notice any performance increase when you switched to vertex buffer objects. Theoretically retained mode should be way faster since the GPU won't get bottlenecked by the program code, but in my experience it often doesn't make a difference. I guess it really comes down to the drivers.
Actually there was a fairly massive CPU performance increase. 3% CPU to render 2 million triangles. As long as no vertex math is happening.
At the lowest level of rendering my voxel engine uses glDrawArrays in immediate mode to draw lots of vertical lines on a framebuffer object. I should profile using a VBO instead, but I suspect I would get better performance if I left the OpenGL rendering to the CPU and did the raycasting on the GPU with CUDA. I think x told me this years ago, but I didn't really understand him at the time xD
That's a fascinating idea and way higher than my knowledge set. I can't give an opinion.
Also if you can't wait for Vulkan there's always Mantle. If you don't mind programming on Windows
I've looked into it but I'll just wait. Mantle is dead on arrival and Vulkan should be widely supported at the end of the year. I just hope Vulkan won't require a completely different mindset.
Also, what do you think of D? My friend is doing his thesis on the different successors to C++, namely D and Rust. I hate functional programming so Rust is a no-go for me, but D basically seems like C++ with a garbage collector, in which case why not use a more mature language like Java or C#?
Java - I don't like the idea of a VM but it's a fine language. I use it for work. Maybe that's why I prefer to stay away from it.
C# - Fantastic language, I would have definitely gone with this if it were cross platform. And Visual Studio were cross platform.
D - Identical to C# pretty much. Tons of libraries. You can bind to C++ or C code if you want to use one of their libraries. Cross platform.
D is the friendliest cross platform language I have had the pleasure to use. It has a fantastic package manager/compiler/running thingy. Cross platform command line application called DUB. Install it, then to run D programs just cd into the source and run the command "dub". No ridiculous compiler flags to set up. Use any IDE you want but there's a VisualD plugin for Microsoft Visual Studio which I hear is fantastic. I use Xamarin with the D language plugin on Mac.
Everything just works. On all platforms. With the speed of C++. But not the complexity. The language has all the features I could want.
Dlanguage website is well setup, easy to find documentation and they even have a constantly updated package section where you can look at packages. Lots of packages, 3D, window, math, animation, fluid dynamics, game libraries, physics libraries, and so on. To install a package it's as easy as opening your source project's dub.json file and adding the package name to the dependencies. The package gets downloaded when it compiles your application.