Awesome work guys, it is great to finally see some practical results besides the discussions! Also thanks a lot for your collaboration and that you share your work!
A couple of notes:
MistaED wrote:
Seeing as there's no occlusion queries in OpenGL ES 2.0, would this be replaced with like a software implementation perhaps using bullet instead, or perhaps it isn't needed because the tile-based deferred renderer can do this job for you for free, provided that you don't use any alpha discards or alpha blends in the first pass?
The tile based architecture will only affect rasterization and helps to reduce overdraw. It does not help with reducing the number of vertices that get submitted and transformed. So a software based occlusion solution,
similar to this one, can make sense. It will be more efficient on platforms that allow efficient readback of the depth buffer.
MistaED wrote:
The overlay shader compiles fine but I disabled them because they use GL_QUADS internally (shouldn't be too difficult to change that to GL_TRIANGLES, just haven't got to that yet).
Even for the standard GL renderer, we try to remove/avoid functionality that was deprecated by GL3, so all GL_QUADS are candidates for refactoring.
attila wrote:
I'm using some code from Horde3D: Tokenizer and RBObjects. Is there any legal issue with this?
Don't worry about that and feel free to reuse any code that you need when extending horde.
attila wrote:
I've solved the issue of missing glGetBufferSubData differently, but your solution seems to be better, as the vertex data is already stored in egGeometry. I've tried your patch and it seems to work well.
Right now, I don't see the point in using cloneBuffer in that function. CloneBuffer is used only there so if there are no further plans for using it elsewhere, we can get rid off that completely. ???
We need to extend the API to give the user more control over where geometry data should be stored. This is something that needs to be done anyway, regardless of GL ES.
MistaED wrote:
H3DNode light = h3dAddLightNode( H3DRootNode, "Light1", 0, "LIGHTING", "SHADOWMAP" );
Just reading the documentation, what can I put on the end so there's no shadowmap at all? Can I put that guy to NULL or is this bad practice?
Shadow maps can be disabled by calling
h3dSetNodeParamI( light, H3DLight::ShadowMapCountI, 0 );Volker wrote:
Not sure why the textures are all bound to stage GL_TEXTURE15 by default. I think maybe marciano can say something about it.
Solely the shadow map is always bound to unit 15, the units of other textures are computed in ShaderResource::parseFXSection (units can also be specified explicitly in the sampler definitions).
Keep up the great work guys!