Volker wrote:
First of all, congratulations to the first working D3D rendering backend for Horde3D.
Thanks and thanks for the feedback.
Volker wrote:
Regarding your changes I totally aggree that dynamic texture compression is something that should be probably avoided anyway and may be done in a preprocessing step or moved to a separate utility library that creates compressed textures on the fly and pass those to horde (e.g. when using a custom h3dutLoadResourcesFromDisk version or something like that).
Moving compression to h3dutLoadResourcesFromDisk is a clever idea. With some compression method this could be usable (eg. realtime dxt compression). Our pvrtc and etc compression method on best quality takes minutes for 1024x1024 textures so obviously we convert it in preprocessing. I will remove "compression on upload" related flags from h3d and update the docs on github.
Volker wrote:
I also agree that it's proably better to switch to RGBA8888 that is available on all platforms instead of using BGRA. I never noticed any measurable difference in speed and for texture streaming maybe PBOs would make a bigger difference, but are currently not used by Horde3D.
As a lot of the ES2.0 devices do not support BGRA, I think switching to RGBA by default would make a lot of sense.
Thanks for the info about your experience about bgra/rgba upload. Then I think it is better to switch rgba8888 on all backend.
Volker wrote:
I never did any shader programming on D3D, so regarding your shader definition changes I'm probably not the right person for giving advises. But maybe we should use the D3D names in lowercase by default. So in OpenGL vertPos becomes position0, normal => normal0, etc.
That would make mapping a bit more easier I guess.
To be honest this is my first d3d11 project (I used d3d9 only). As renaming attributes in opengl backends is a quite large change I postpone this till the backends are mature enough and there is no better solution.