So another sigraph and another openGL version, you can check out whats in it from basically any slightly openGL related website including openGL.org
I have to start with a little disclaimer that i haven’t actually tried anything just yet but anyway here are some comments
- compute shaders – i think this is a step in the right direction but i think it still needs more, like my object shaders in a previous wish list.
- shader storage buffer objects – i still have no idea what to do with these, maybe volumetric lighting or something, though it does sound awesome.
- texture parameter queries – meh, sounds like something that should have been in there from the beginning.
- ETC2 / EAC texture compression – finally a standard one can use, though this should have been done years ago.
- debug capability, yay, though i never needed it anyway, but it could be a good thing to discover potential problems.
- texture views – now this is interesting, but it could have been so much more, but more about that in the wish list part in the end.
- indirect multi-draw- as i understand it this is an instanced variant of draw indirect which is also directly confusing, needs more experimentation.
- increased memory security and multi-application robustness – ok, i guess it’s useful but i don’t think i will be using it.
In addition there is also a bunch of housekeeping extensions like GL_ARB_stencil_texturing or GL_ARB_shader_image_size which add some “glue” to make the API a bit more manageable.
It’s a fairly solid release IMHO, but on the other hand openGL starts to feel like it needs a slight trimming down without loosing features as there are now multiple ways of doing the same thing, i think the idea of my slot model still stands pretty firm as in put everything into unified buffers, add some meta data then bind them to slots and use them.
I might just test some of this new stuff out as this is pretty much the first time in a while my graphics card supports pretty much everything, so give some comments if you want me to test something specific.
OpenGL Wishlist 5.0
This one will be all about textures i think.
Here is the thing, textures have basically stayed the same since like openGL 1.2 (i think) with only minor updates(im only counting the actual rendering and setting up of textures), but OpenGL 4.3 introduces texture views which gave me an idea.
What texture views basically does is allow you to load a texture, then create other texture from that using the same data, like lets say you want a texture array with all the textures in it, then you can take a part of it and make a cube map of it, which is something i have to say is completely awesome.
But as i see it this is only the beginning, the extension i like to see to this is a way in where you can basically convert one format into another, lets take an example of an texture atlas, now imagine you could convert small animation sequences of it to a texture array or a part of a texture to a perfectly tillable texture but using the same data, so if you change one you change them all.
Continuing on the texture path, there are basically two texture modes i like to see, they are both variations of mipmapping but instead of having a set of progressively smaller textures, these two modes use a set of the full size texture in different ways, these are mega mapping and lod mapping and both are compatible with mipmapping as they only effect layers above the base layer
Mega mapping, essentially what is done is the first mega map is overlayed and repeated two times for each time the base layer is, the next one 4 then 8 and so on and just like mip mapping the gpu then chooses which one is rendered depending on the LOD, you could also blend between layers just like mipmapping.
This would be really useful for megatexturing.
Lod mapping, like mega mapping but doesn’t use tiling, each additional layer covers the center of the texture and is smoothly blended with the previous one creating a really high resolution in the center and lower at the edges useful for shadow map since you could basically cover the entire map in a single texture and still get pretty good resolution near the player.
Settings could include where the maps should center (you could just put all the detail in one corner if you like) and how much of the previous layer they should cover (so that if the base texture covers 100 square kilometers there is no reason to need to go through 14 layers just to get down to the more reasonable 100x100m area in a game the player can actually see).
I may be able to actually release the first version of the toolkit i promised last year, it’s grown a bit and i had to do a few small rewrites, but all i really have left coding wise is a way to use a texture atlas in different ways on cubes then off to write all the coments, documentation and “tutorial” for it.
It has all the things i wanted int it except for certain geometric shapes which is just hard to do by hand, i have cubes, tetrahedrons and hexahedrons, so all i am really missing is Sphere, pyramid, octahedron, torus, dodecahedron, icosahedron, icosidodecahedron.
If you like to help then make 3 arrays (vertex, texture and normal) with the coordinates for the triangles in them in this format with the size of 1 centered around the middle of the object (texture coordinates only use 2 values per vertex).
And i would prefer that you make the last ones in the list first.
float vt =
-0.5f, -0.5f, 0.5f,
Unless i get them pretty soon i will try and add them in the next version which will primarily be centered around various forms of geometric generation, like metaballs, cubic landscape (minecraft) and so on, and it will probably be version 1.5.
The next major version will most likely be focused on physics and such.