new class in package: PMaterial.

This class is an helper that simplify the access to the multiple layers of Ogre’s materials.
There are 3 levels in a material:

  • technique
  • pass
  • texture units

The usual Ogre way to access to modify a pass diffuse is looking like this:

Ogre::MaterialPtr ptr =  Ogre::MaterialManager::getSingleton( ).load( "mat", "group" );
ptr.getTechnique(0)->getPass(0)->setDiffuse( 1,0,0 );

Using PMaterial, it looks like this:

polymorph::PMaterial ptr;
ptr.load( "mat", "group" );
ptr.diffuse( 1,0,0 );

Selection of technique and pass is optional. The image above shows the fog configuration:

pmat.fogMode( Ogre::FOG_EXP );
pmat.fogDensity( 0.1 );
pmat.fogDistance( 10, 30 );
pmat.fogColor( 0.4, 0.4, 0.4 );

All methods are not yet there, do not worry, they will come soon.