fix(viz): secure parameters settings in OIT techniques
Description
Our OIT (order-independent transparency) pipeline creates rendering techniques on-the-fly. It is easy to forget that and only use the first techniques when setting pass parameters (textures, uniforms, etc...). We should provide a way to help people to do it the correct way.
Reference
The following discussion from !775 (merged) should be addressed:
-
@mkugler1 started a discussion: (+1 comment) Wouldn't it be better to apply the binding to all pass here ?
this->getRenderService()->makeCurrent(); const ::Ogre::Material::Techniques& techniques = m_material->getTechniques(); for(const auto* const tech : techniques) { SIGHT_ASSERT("Technique is not set", tech); if(sight::viz::scene3d::helper::Shading::isColorTechnique(*tech)) { ::Ogre::Pass* const pass = tech->getPass(0); SIGHT_ASSERT("Can't find Ogre pass", pass); m_texture->bind(pass, "image"); } }
Proposal
Optional section to give some functional or technical hints
Functional specifications
Workflow, UX/UI design, screenshots, etc...
Technical specifications
Details of the implementation
Test plan
Describe how you will verify that the implementation fulfils the specifications