设置atomic为某种颜色:
设置geometry标志,flag & (~rpGEOMETRYTEXTURED) | rpGEOMETRYMODULATEMATERIALCOLOR。然后设置每个metrial color为该颜色。
注意geometry共用的情况。
给Geometry设置颜色和恢复的方法
设置颜色 RpGeometrySetFlags( pGeomegry, RpGeometryGetFlags(pGeomegry) & (~rpGEOMETRYTEXTURED) | rpGEOMETRYMODULATEMATERIALCOLOR );
for ( int i = RpGeometryGetNumMaterials(pGeomegry); i―― > 0; )
{
pMaterial = RpGeometryGetMaterial( pGeomegry, i );
//这里保存Material的原来颜色
RpMaterialSetColor( pMaterial, pNewColor );
}
恢复颜色 RpGeometrySetFlags( pGeomegry, RpGeometryGetFlags(pGeomegry) | rpGEOMETRYTEXTURED & (~rpGEOMETRYMODULATEMATERIALCOLOR) );
然后把设置颜色过程中存储的原颜色恢复回去
不过因为Geometry有的时候是共用的,所以需要复制一份出来,否则会影响到其它角色。