bmwcarit / ramses

A distributed system for rendering 3D content with focus on bandwidth and resource efficiency
Other
368 stars 59 forks source link

RENDERER_CONFIG_LIST in rendererModulePerConfig.cmake is hardcoded and does not support external configuration #56

Open ManuelKugelmann opened 2 years ago

ManuelKugelmann commented 2 years ago

The current setup makes it difficult to extend ramses in a purely additive way. I cannot easily add my custom platform into the existing build chain through extension of this configuration at a place where I do not need to modify any original ramses files.

violinyanev commented 2 years ago

Hi @ManuelKugelmann thanks for the report. We are aware of this, but didn't think it's necessary to provide such kind of extensibility. We will discuss this internally, meanwhile if you have code which demonstrates what you want to do, would be great if you can offer it as a branch/PR so that we can use it as an example

ManuelKugelmann commented 2 years ago

Imho this is one of the more obscure parts of the build system. To add a new platform I have to touch at least to locations: the dependencies in the main CMakeLists.txt and the platform list in rendererModulePerConfig.cmake. Maybe inserting an entry into the list could be moved into the dependency, similar to how the MIXINs are set?

ManuelKugelmann commented 2 years ago

@violinyanev On what I did: I created an additional Platform that acts as a Spout-Sender (https://spout.zeal.co/) so that ramses renderer output can be used as a texture inside DirectX and OpenGL engines like Unity3D, Unreal, etc.. I'll check if I can contribute that to ramses OSS.

In the future I might also add a ramses client that has a Spout-Receiver to inject external rendering into the ramses system as a streaming texture...

violinyanev commented 2 years ago

Hi @ManuelKugelmann alright, so you need to do special stuff on the spout-specific backend I guess. We are aware that the rendering platform code is suboptimal, build-system wise and also class-wise. Contributions which make a reasonable proposal how to improve it are welcome ;) Will see what we can do to make the extension of the classes easier for you, but as I said, it would be a lot easier if you can just share the code so that we can also test our implementation works. You are also welcome to suggest what you need/your hurrent "hacks".

ManuelKugelmann commented 2 years ago

Will check how much I can share.