Hello Carsten, so I have made some progress but I'm still not there...
First, at Friday I did send my current draft to the mailing list, but it get on hold because of the 200K file size limit. I have now uploaded the files to a file sharing host and you can download it with the following url for the next seven days: http://wikisend.com/download/191700/UniformBufferObjChunk.zip Currently, I do have two problems with the project: 1. The integration is missing a proper state handling implementation: I did implement new chunk classes ShaderExecutableUniformObjChunk and ShaderProgramUniformObjChunk as you can see in the file package. For proper state handling I do have to do something in the following files: RenderAction.cpp RenderPartition.cpp State.* StateOverride.cpp. Additionally, I expect to provide some interfaces to ShaderCache and ShaderCacheTree. According to the code I find for instance in StateOverride or RenderAction I have to extend State.h by an additional key 'Key4Mask'. But the implementation does not allow this because of the UInt32 type. After I did saw these code places I got unsure whether it was a good idea to go the same route as the shader program variables. On the one hand I think that it is a clean and proper separation from the variables. But the next extension is already lurking around the corner, i.e. the ShaderStorageBlocks which are sufficient similar to implement them as well. So I do really, need some informed support here in order to do it right :-) Should I expand the above classes? 2. Unfortunately, I'm facing some quirks with the std140 layout on ATI/AMD platforms. The problem is that it is not possible on these platforms to define a uniform block containing arrays of some other structure consisting of vec3 elements and accessing them with a dynamic, i.e. run time index. However, switching to vec4 everything went smooth. Currently, I'm not sure if the problem also exists for the default (non std140) layout. The example I added to the code actually, shows this problem. It contains a material database which consists of a uniform block array of of Materials, which are composed of vec3 elements for the surface properties. The material index into this array is provided by another uniform block for the object to render. On NVIDIA this example works well, but on ATI/AMD it does not. For the lighting a similar problem exists in the example. It would be fine if you and Gerrit, could take a look at the code and give me some advise how to proceed. Best, Johannes ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users