To have decent 3D model rendering, normal mapping is essential. Currently defold model rendering predicate only provides pos, normal and uv. The most user friendly solution is providing mesh handling API, something like RecalculateTangents/RecalculateNormals can be very helpful.
On the other hand, if native extension have access to VBO/VAO/VEO/texture name, we can calculate tangent and manipulate vertex data ourself, but with custom VBO layout, skinning will be a problem then, to implement correct skinning, bone/weight information also must be accessible.
Also, we want ES 3.0 very badly, at least sRGB/dFdx are what we want and expensive/impossible to simulate with shader code.
Is it possible for defold to have these features in near future?
There’s plans for implementing extensibility for GL extensions (as you mention above). It’s not been planned exactly when yet, but it’s been asked for frequently so it’s got high priority.
Regarding ES3.0 as such is another matter since we don’t want to break compatibility with older devices not supporting this (earlier than iPhone5S or Android 4.3 (API level 18)). It’s not been decided yet when start supporting ES3.0. However, supporting GL extensions will cover most cases.
Maybe ES version can be added as a project wide option, this can put the decision to the game developer’s hand.
And how about bump map support? other texture such as AO/emission/metallic can be implement easily without help from the engine, but bump map require engine to do the pre-calculation of tangent vector for the mesh, and add it to the VBO, skinning also make this hard to be implement in native extension (I do this in my last game with Unity, it’s a nightmare). Please consider adding this to the plan, thank you!
Would you please share more detail about the custom vertex format feature? I’m curious about how it works in detail. And also more about the timing about this feature, because we must adjust our implementation accordingly, e.g. use more precise mesh to compensate.
Apparently it’s already possible to get? And I already knew about it and forgot about it (I go through so many things all of the time that does happen a lot…)?
I’m going to play with some more 3D stuff this weekend.