kburkhart84
Firehammer Games
I'm making a nice long list of things that we need to make 3d games better, and better looking. I'm specifically looking for things that we simply CANNOT do ourselves. I won't be adding things like vector objects, model importing/animation, or similar as those are things we should be able to code ourselves. I'm adding things that must be added(or exposed) at a lower level than what we have access to. I'll show the current list here, and as people mention things, I'll add it on. This way, we can have the information stored in a single place. Note that these are not in any particular order, and many of them are much less useful or less priority than the others.
Updated shaders(we are on an extremely early version of OpenGL(ES) shaders right now)
Geometry Shaders(possibly redundant with GPU Buffers)
Tesselation Shaders(possibly redundant with GPU Buffers)
Compute Shaders
Exposure of Shader compilation and upload(maybe integrating the build-time converter via extension)
Texture reading in vertex buffer(if it doesn't get added via updated shaders)
3d Textures
Array Textures
cubemaps
GLSL ES MRTs(if not included in shader updates)
Stencil buffer access
Texture options(formats, layouts, steamed/not streamed, filtering, etc...), including, block texture compression (all the BCs, including BC6 and BC7, and ASTC compression for mobile).
Arbitrary Surface formats(for things like depthmaps instead of just RGB)
More direct control over texture loading(which ones are in memory, etc...), as in more direct control than what is provided by texture groups
GPU Buffers(as shared by GMWolf), can be used for sending data to shaders, as well as have shaders modify in order to share data with other shaders. These need to be accessible by both GML and on the GPU side
Scissor masks, which can be quite useful for 2d as well(we currently abuse surfaces for this)
Updated shaders(we are on an extremely early version of OpenGL(ES) shaders right now)
Geometry Shaders(possibly redundant with GPU Buffers)
Tesselation Shaders(possibly redundant with GPU Buffers)
Compute Shaders
Exposure of Shader compilation and upload(maybe integrating the build-time converter via extension)
Texture reading in vertex buffer(if it doesn't get added via updated shaders)
3d Textures
Array Textures
cubemaps
GLSL ES MRTs(if not included in shader updates)
Stencil buffer access
Texture options(formats, layouts, steamed/not streamed, filtering, etc...), including, block texture compression (all the BCs, including BC6 and BC7, and ASTC compression for mobile).
Arbitrary Surface formats(for things like depthmaps instead of just RGB)
More direct control over texture loading(which ones are in memory, etc...), as in more direct control than what is provided by texture groups
GPU Buffers(as shared by GMWolf), can be used for sending data to shaders, as well as have shaders modify in order to share data with other shaders. These need to be accessible by both GML and on the GPU side
Scissor masks, which can be quite useful for 2d as well(we currently abuse surfaces for this)
Last edited: