Hi,
Thanks for your message, and again, very sorry for not having answered the forum this past year.
You're absolutely right, the options shown in the Blending Methods dropdown depend on the return value of IsRenderingMethodCompatible. What this function does is check each item in the sceneRepresentationMethods of the
RenderingMethod, to see whether the scene representation assets (textures, meshes...) required to render the scene using this method have correctly been bundled during the processing stage.
For example:
- The TexturedFocalSurfaces method requires an array of color textures and an array of meshes (one per image). Therefore, in the overriden InitializeLinks function of TexturedFocalSurfaces
(here),
we add the
ColorTextureArray and PerViewMeshesFS processing methods
to the list of
sceneRepresentationMethods, to specify that the rendering method requires the corresponding bundled assets.
-
The ULRGlobalMesh method requires an array of color textures, an array of depth textures, and a single global mesh. Therefore, in the overriden InitializeLinks function of ULRGlobalMesh (here),
we use the function of the ULR helper (here) to add the
ColorTextureArray, GlobalMeshEF, and
DepthTextureArray processing methods
to the list of
sceneRepresentationMethods, to specify that the rendering method requires the corresponding bundled assets.
Therefore, if you do not see the option that you want in the blending methods dropdown, check the assets bundled during the processing stage: it is likely that some are missing if you compare them to those specified in the rendering method's
overriden InitializeLinks function.
I'll try to update the online docs quickly to provide more information on this subject. I agree that it could be helpful to mention the assets required by each method somewhere in the documentation. And providing guidance during the acquisition stage is a good idea as well, I'll see if I can find a way to implement this in a transparent way.
Thanks again for your feedback!
Greg